我正在ERB中构建一个简单的表单,但是text_field标记生成的HTML会使标签标记中的 for 属性无效。
<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”的值。
如何在没有嵌套参数名称email [name]的情况下生成文本,以更改属性的标签标记?是否有另一种方法可以生成有效的HTML?
答案 0 :(得分:0)
将其从引号中取出,或将div内容生成为字符串并将其添加到div.innerHTML
答案 1 :(得分:0)
for属性应该引用它作为标签的元素的ID属性,而不是它的名称。
因此,您不需要:
<div>
<p><%= label_tag "email_name", "Name" %></p>
<%= text_field :email, :name, :class => "text_field" %>
</div>
...