0

我想创建一个表单,其中有一个由三个链接的单选按钮组成的块,每个按钮都附加一个单独的输入字段,例如

  • 选项 1:[ __下拉框__ ]
  • 选项 2:[ __下拉框__ ]
  • 选项 3:[ __文本字段__ ]

这三个选项中的每一个都将在模型中具有一个属性。

I want each of the three options to have a radio button, which when selected will automatically activate the input field beside it, and disable the other two. 在提交表单的控制器中,我还需要知道选择了哪个单选按钮,从关联的输入中获取值,并将其他两个字段设置为 nil,然后再保存记录。

几个月前我尝试过这个并且失败了,现在再试一次对我来说仍然没有多大意义,我对任何 Web UI/标记语言都非常缺乏经验。

如果有人可以向我指出一个示例或必要的资源,以便我可以阅读我需要组合的各种方法,那将不胜感激。

4

2 回答 2

0

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-radio_button

将值传递给 :class 以对单选按钮进行分组。为每个单选按钮分配不同的 ID,并在 javascript 中处理相关字段的隐藏/显示。在模型中,根据所选单选按钮传递的值使用验证。

validates :mmc_value, :numericality => { :message => ERR_NUMBER }, :if => :modifier_type

def modifier_type
  ['MMC', 'LMC'].include?(self.modifier) #modifier is the value on which the validation of other fields is based.
end
于 2012-09-04T07:34:28.920 回答
0

我最终这样做是为了让它工作:

看法:

<label for="hide" style="display: inline-block">Override V</label>
<input id="v_toggle" type="checkbox" value="Hide" />
<br/>
<%= f.input :v_id, :collection => @vs, :prompt => "Choose a V" %>
<%= f.input :v, :label => false %>

JS文件:

jQuery(document).ready(function(){
    $('#service_v').hide();
    jQuery('#v_toggle').live('click', function(event) {        
        jQuery('#service_v_id').toggle('show');
        jQuery('#service_v').toggle('show');            
    });
});
于 2012-09-08T04:09:41.370 回答