单轨按钮的标签形式 [英] Labels for radio buttons in rails form

查看:104
本文介绍了单轨按钮的标签形式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题类似于这一个
但对于一个Rails应用程序。



我有一个单选按钮的表单,并希望将标签与它们关联。 标签表单助手仅将表单字段作为参数,但在这种情况下,对于单个表单字段,我有多个单选按钮。我看到要做到这一点的唯一方法是手动创建一个标签,硬编码自动为单选按钮生成的标识。有人知道更好的方法吗?例如:

 <%form_for(@message)do | f | %GT; 
<%= label:contactmethod%>
<%= f.radio_button:contactmethod,'email',:checked => true%>电子邮件
<%= f.radio_button:contactmethod,'sms'%> SMS
<%end%>

这会产生类似于:

 < label for =message_contactmethod> Contactmethod< / label> 
< input checked =checkedid =message_contactmethod_emailname =message [contactmethod]value =emailtype =radio>电子邮件
< input id =message_contactmethod_smsname =message [contactmethod]value =smstype =radio> SMS

我想要的:

 < input checked =checkedid =message_contactmethod_emailname =message [contactmethod]value =emailtype =radio>< label for =message_contactmethod_email> ;电子邮件与LT; /标签> 
< input id =message_contactmethod_smsname =message [contactmethod]value =smstype =radio> < label for =message_contactmethod_sms> SMS< / label>


解决方案

 < %form_for(@message)do | f | %GT; 
<%= f.radio_button:contactmethod,'email',:checked => true%>
<%= label:contactmethod_email,'电子邮件'%>
<%= f.radio_button:contactmethod,'sms'%>
<%= label:contactmethod_sms,'SMS'%>
<%end%>


My question is similar to this one but for a Rails app.

I have a form with some radio buttons, and would like to associate labels with them. The label form helper only takes a form field as a parameter, but in this case I have multiple radio buttons for a single form field. The only way I see to do it is to manually create a label, hard coding the ID that is auto generated for the radio button. Does anyone know of a better way to do it?

For example:

<% form_for(@message) do |f| %>
    <%= label :contactmethod %>
    <%= f.radio_button :contactmethod, 'email', :checked => true %> Email
    <%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>

This generates something like:

<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

What I want:

<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>

解决方案

<% 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 %>

这篇关于单轨按钮的标签形式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆