在这个表单中,用户从几个选项中选择一个。他的答案将显示在其他地方,所以必须格式化。
问题是,当你在Rails中设置无线电的值时,它也会将其用于id
属性,如果我使用空格和其他特殊字符,这将是无效的。
请看下面的例子:
<%= radio_button :a, "Yes, I want bananas." %>
<%= radio_button :a, "No, I rather have strawberries." %>
我希望输出如下:
<input type="radio" name="a" id="a_yes_i_want_bananas" value="Yes, I want bananas.">
<input type="radio" name="a" id="a_no_i_rather_have_strawberries" value="No, I rather have strawberries.">
我尝试在radio_button
中强制value
选项,但它不起作用。
有什么想法吗?
更新。
为了更清楚,用户将只选择一个选项。但我的问题是:
调用form.radio_button
时给出的值同时用作id
和value
。我希望id
是参数化的,但value
保持其格式-如大写字母和空格。
我希望字符串"No, I rather have strawberries."按原样提交,但id为"a_no_i_rather_have_strawberries"。
如果还不清楚请告诉我。正如你所看到的,我的英语不是很好。= P
另一种说法是:
我想这样做:
<%= radio_button :foo, "my_super_option", :value => "You are awesome! %>
但是Rails忽略我的value
选项
您也可以使用:
<%= radio_button_tag(:a, "bananas") %>
<%= label_tag(:a_bananas, "Yes, I want bananas.") %>
<%= radio_button_tag(:a, "strawberries") %>
<%= label_tag(:a_strawberries, "No, I rather have strawberries.") %>
我认为你的最后一个代码示例不工作,因为第一个字符串参数是值,所以在选项哈希值被忽略。
您是否尝试将id指定为选项散列的一部分?
<%= radio_button :a, "Yes, I want bananas.", id: "yes_i_want_bananas" %>
<%= radio_button :a, "No, I rather have strawberries", id: "no_i_rather_have_strawberries" %>
我想我是疯了还是怎么的。Rails神奇地开始用特殊字符保留value
属性,并将id
属性参数化。
:
<%= f.radio :option, 'Hi! Would you like a coffe ?'%>
成为:
<input type="radio" name="form_option" id="form_option_hi_would_you_like_coffee" value="Hi! Would you like a coffe ?">
现在一切正常。很抱歉给你们添麻烦了,谢谢你们所做的一切。
这实际上看起来像选择输入。你应该使用复选框:
<%= f.checkbox :flavor, "strawberry" %>
<%= f.checkbox :flavor, "bananas" %>
单选按钮意味着从几个选项中选择一个,你的例子表明你需要标记一个选择。
你总是可以使用单选按钮,但要给它们特定的值,比如"草莓"one_answers"香蕉",并在标签中使用你的解释性文本。