如何在 Rails 中radio_button值中使用空格和特殊字符?



在这个表单中,用户从几个选项中选择一个。他的答案将显示在其他地方,所以必须格式化。

问题是,当你在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时给出的值同时用作idvalue。我希望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"香蕉",并在标签中使用你的解释性文本。

最新更新