私の質問はこれに似ています が、Railsアプリに関するものです。
いくつかのラジオボタンを持つフォームがあり、ラベルをそれらに関連付けたいのですが。label
フォームヘルパーは、唯一のパラメータとしてフォームフィールドを取りますが、この場合には、私は、単一のフォームフィールドの複数のラジオボタンがあります。ラベルを手動で作成して、ラジオボタン用に自動生成されるIDをハードコーディングするのが唯一の方法です。誰かがそれを行うためのより良い方法を知っていますか?
例えば:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
これは次のようなものを生成します:
<label for="message_contactmethod">Contactmethod</label>
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"> Email
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> SMS
私が欲しいもの:
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"><label for="message_contactmethod_email">Email</label>
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> <label for="message_contactmethod_sms">SMS</label>
:value
ます。オプションを渡しf.label
て同じことを行います。例えば<%= f.label :contactmethod, 'SMS', :value => 'sms' %>
。これにより、ラベルタグの「for」属性が正しく設定され、ラベルをクリックして適切なラジオボタンが選択されます。上記の回答でlabel
は、ラジオボタンがFormBuilderで作成されたときにヘルパーを使用するだけで「for」属性が正しく表示されません