Недопустимые символы в label_tag - PullRequest
0 голосов
/ 06 ноября 2008

Я создаю простую форму в ERB, но HTML, созданный тегом text_field, делает атрибут для в теге label недействительным.

<div>
  <p><%= label_tag "email[name]", "Name" %></p>
  <%= text_field :email, :name, :class => "text_field" %>
</div>

Создает HTML

<div>
  <p><label for="email[name]">Name</label></p>
  <input class="text_field" id="email_name" name="email[name]" size="30" type="text" />
</div>

Что приводит к ошибке

символ "[" не допускается в значение атрибута "для".

Как мне сгенерировать текст без вложенного имени параметра email [name], чтобы изменить метку метки для атрибута ? Есть ли альтернативный подход, который производит правильный HTML?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2008

Атрибут for должен ссылаться на атрибут ID элемента, для которого он является меткой, а не на его имя.

Поэтому вам не нужно:

<div>
  <p><%= label_tag "email_name", "Name" %></p>
  <%= text_field :email, :name, :class => "text_field" %>
</div>

...

0 голосов
/ 06 ноября 2008

Возьмите его из кавычек или сгенерируйте содержимое div в виде строки и добавьте его в div.innerHTML

...