单选按钮的标签也可以选择吗?

t-m*_*art 9 html ruby web-applications ruby-on-rails

根据(有点官方)本指南,我可以制作单选按钮的标签,也可以选择该单选按钮.他们说,

始终为每个复选框和单选按钮使用标签.它们将文本与特定选项相关联,提供更大的可点击区域.

不幸的是,我无法为我的表单获得此功能.这是我的代码:

<% form_for(@bet) do |f| %>
  <%= f.label :bet_type %>
  <%= f.radio_button :bet_type, "moneyline" %>
  <%= f.label :bet_type_moneyline, "Moneyline" %>
  <%= f.radio_button :bet_type, "spread" %>
  <%= f.label :bet_type_spread, "Spread" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我也试过这个(因为这是使用FormTagHelper而不是FormHelper的示例):

<% form_for(@bet) do |f| %>
  <%= radio_button_tag :bet_type, "moneyline" %>
  <%= label_tag :bet_type_moneyline, "Moneyline" %>
  <%= radio_button_tag :bet_type, "spread" %>
  <%= label_tag :bet_type_spread, "Spread" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但是,我仍然无法让它发挥作用.我正在使用rails 2.3.5和ruby 1.8.7.

感谢阅读,也许还有帮助!

小智 10

您可能找到了解决方案,但它可以帮助其他人.我正在使用Rails 4+.

您可以使用Rails的FormHelper的标签方法使用"value"键将标签正确地点击到params中.

label(:post, :privacy, "Public Post", value: "public")
# => <label for="post_privacy_public">Public Post</label>
Run Code Online (Sandbox Code Playgroud)

对于你的代码,应该是这样的

<%= f.radio_button :bet_type, "moneyline" %>
<%= f.label :bet_type, "Moneyline", value: "moneyline" %>
<%= f.radio_button :bet_type, "spread" %>
<%= f.label :bet_type, "Spread", value: "spread" %>
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你 :)


tfe*_*tfe 6

对单选按钮执行此操作的简单方法是将输入标记放在标签内,如下所示:

<label>
  <input />
  This is an input!
</label>
Run Code Online (Sandbox Code Playgroud)

这是实现目标的有效方式.

在Rails中,label帮助程序可以接受一个块,所以你可以这样做:

<%= f.label :moneyline do %>
  <%= f.radio_button :bet_type, "moneyline" %>
  "Moneyline"
<% end %>
Run Code Online (Sandbox Code Playgroud)


T. *_*all 5

<%= f.radio_button :bet_type, "moneyline" %>
<%= f.label :moneyline, "Moneyline", :for => "bet_type_moneyline" %>
Run Code Online (Sandbox Code Playgroud)