轨道形式的单选按钮标签

2024-01-19

我的问题类似于this one https://stackoverflow.com/questions/658689/how-to-associate-labels-with-radio-buttons但对于 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将确保标签标签的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 %>

See ActionView::Helpers::FormHelper#label https://rdoc.info/gems/actionview/6.1.4.1/ActionView/Helpers/FormHelper#label-instance_method

:value 选项,旨在针对 radio_button 标签的目标标签

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

轨道形式的单选按钮标签 的相关文章

随机推荐