0

我在 ERB 中构建了一个简单的表单,但是 text_field 标记生成的 HTML 使 label 标记中的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?

4

2 回答 2

0

将其从引号中取出,或将 div 内容生成为字符串并将其添加到 div.innerHTML

于 2008-11-06T19:57:36.297 回答
0

for 属性应该引用作为标签的元素的 ID 属性,而不是其名称。

因此,您不需要:

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

...?

于 2008-11-06T22:10:34.077 回答