2008-11-06 54 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