Bry*_*yan 142 forms ruby-on-rails
我的问题类似于这个, 但对于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 %>
Run Code Online (Sandbox Code Playgroud)
这会产生类似于:
<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
Run Code Online (Sandbox Code Playgroud)
我想要的是:
<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>
Run Code Online (Sandbox Code Playgroud)
Joh*_*hat 224
传递:value
选项f.label
将确保label标签的for
属性与相应的id相同radio_button
<% form_for(@message) do |f| %>
<%= f.radio_button :contactmethod, 'email' %>
<%= f.label :contactmethod, 'Email', :value => 'email' %>
<%= f.radio_button :contactmethod, 'sms' %>
<%= f.label :contactmethod, 'SMS', :value => 'sms' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
请参阅ActionView :: Helpers :: FormHelper#label
:value选项,用于定位radio_button标签的标签
Mat*_*ley 140
<% form_for(@message) do |f| %>
<%= f.radio_button :contactmethod, 'email', :checked => true %>
<%= label :contactmethod_email, 'Email' %>
<%= f.radio_button :contactmethod, 'sms' %>
<%= label :contactmethod_sms, 'SMS' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)