2008-11-06 70 views
0

我在构建ERB中的简单表单,但text_field标记生成的HTML使标签标记中的属性无效。label_tag中的字符无效

<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> 

这导致错误

字符 “[” 是不允许在属性 “为” 的 值。

如何生成与没有嵌套参数名电子邮件地址[名]更改标签标记为属性的文本?有没有其他方法可以生成有效的HTML?

回答

0

for属性应该引用,这就是它的标签的元素的ID属性,而不是它的名字。

因此,不要你需要:

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

...?

0

拿出来了引号的,或产生在div内容作为字符串并把它添加到div.innerHTML