Вопрос

Я создаю простую форму в 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>

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

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

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

Это было полезно?

Решение

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

Следовательно, разве вам не нужно:

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

...?

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top