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

for 属性は、要素の名前ではなく、ラベルである要素の ID 属性を参照することになっています。

したがって、あなたは必要ありません:

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

...?

于 2008-11-06T22:10:34.077 に答える
0

引用符から外すか、div コンテンツを文字列として生成して div.innerHTML に追加します。

于 2008-11-06T19:57:36.297 に答える