我想创建一个表单,其中有一个包含三个链接单选按钮的块,每个按钮都附加一个单独的输入字段,例如
三个选项中的每一个都将在模型中具有属性。
我希望三个选项中的每一个都有一个单选按钮,选中它后会自动激活它旁边的输入字段,并禁用其他两个。在提交表单的控制器中,我还需要知道选择了哪个单选按钮,从相关输入中获取值,并在保存记录之前将其他两个字段设置为nil。
几个月前我尝试了这个并且失败了,现在再说一遍对我来说仍然没有多大意义,我对任何网络用户界面/标记语言都缺乏经验。
如果有人能指出我的例子或必要的资源,那么我可以阅读我需要结合的各种方法,我们将不胜感激。
答案 0 :(得分: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
答案 1 :(得分: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');
});
});