質問

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>

エラーが発生する

  

文字&quot; [&quot;で許可されていません   属性の値&quot; for&quot;。

ネストされたパラメーター名email [name]なしでテキストを生成し、ラベルタグ for 属性を変更するにはどうすればよいですか?有効なHTMLを生成する代替アプローチはありますか?

役に立ちましたか?

解決

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

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

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

...?

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top