0

在这种形式中,用户可以选择几个选项之一。他的答案会显示在别处,所以必须格式正确。

问题是当你在 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.">

我尝试valueradio_button但它没有用。

有任何想法吗 ?

更新。

为了清楚起见,用户只会选择一个选项。但我的问题是:

您在调用时给出的值form.radio_button同时用作idvalue。我希望id参数化,但是value要保持其格式 - 如大写和空格。

我想要字符串“不,我宁愿吃草莓。” 按原样提交,但 id 为“a_no_i_rather_have_strawberries”。

请告诉我是否还不清楚。如您所见,我的英语不太好。=P

另一种说法是:

我想这样做:

<%= radio_button :foo, "my_super_option", :value => "You are awesome! %>

但是 Rails 忽略了我的value选择。

4

4 回答 4

1

我认为您的最后一个代码示例不起作用,因为第一个字符串参数是值,因此选项哈希中的值被忽略。

您是否尝试过将 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" %>
于 2013-05-26T17:15:29.017 回答
1

您也可以使用:

<%= 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.") %>
于 2013-05-25T14:16:39.147 回答
1

我想我疯了什么的。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 ?">

现在一切都按预期工作。很抱歉给你们添麻烦了,谢谢你们所做的一切。

于 2013-07-26T20:23:17.677 回答
0

这实际上看起来像是输入的选择。您可能应该为此使用复选框:

<%= f.checkbox :flavor, "strawberry" %>
<%= f.checkbox :flavor, "bananas" %>

单选按钮用于从多个选项中选择一个,您的示例表明您需要标记单个选择。

您始终可以使用单选按钮,但为它们提供特定值,例如“草莓”和“香蕉” - 并在标签中使用您的解释性文本。

于 2013-05-25T14:17:16.587 回答