混合单选按钮和text_field

fsa*_*ier 5 forms ruby-on-rails textfield radio-button

我正在尝试将单选按钮和text_field组合为单个值:

= f.radio_button :system, "bacteria"
Bacteria
= f.radio_button :system, "mammalian"
Mammalian
= f.radio_button :system, "yeast"
Yeast
= f.radio_button :system, "insect"
Insect
= f.radio_button :system, "other"
Other:
= f.text_field :system, class:"input-small"
Run Code Online (Sandbox Code Playgroud)

当我提交时,没有任何反应,因为即使检查了无线电,我也会在参数中给出空白值(我认为它考虑了文本字段).

我试图给text_field另一个名字,并在更新后替换控制器中的:system值,但它看起来像一个脏的方式......

你有更干净的想法吗?

San*_*ing 2

在这里,您不能直接将 radio_button 和 text_field 混合在一起用于同一字段。我认为您可以定义一个额外的 radio_button 字段,该字段将被隐藏,并且当用户输入 text_field 时,其值将被更新。

= f.radio_button :system, "bacteria"
Bacteria
= f.radio_button :system, "mammalian"
Mammalian
= f.radio_button :system, "yeast"
Yeast
= f.radio_button :system, "insect"
Insect
= f.radio_button :system, "other"
Other:
= f.radio_button :system, nil, :id => :hidden_radio, :style => "display:none"
= f.text_field :free_system_input, class:"input-small", :id => :free_system_input
Run Code Online (Sandbox Code Playgroud)

在上面,您将在 text_field 上编写 onchange 事件,每当在 text_field 中输入值时,它会将隐藏的 radio_button 的值设置为 text_field_value。

:javascript
 $("free_system_input").keyup(function(){
   $("hidden_radio").val($(this).val())
 })
Run Code Online (Sandbox Code Playgroud)

上面的代码只是为了给出如何处理问题的想法,并且不会像现在这样工作..:)