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)
希望能帮助到你 :)
对单选按钮执行此操作的简单方法是将输入标记放在标签内,如下所示:
<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)
<%= f.radio_button :bet_type, "moneyline" %>
<%= f.label :moneyline, "Moneyline", :for => "bet_type_moneyline" %>
Run Code Online (Sandbox Code Playgroud)