我有一个带有一些选项的表单,如下所示 -
<%= select_tag "opt1", options_for_select(OPT.vals,OPT.vals) %>
<%= select_tag "opt2", options_for_select(OPT.vals,OPT.vals) %>
<%= select_tag "opt3", options_for_select(OPT.vals,OPT.vals) %>
在表单的其他地方,用户可以决定是否需要所有这三个选项,或者只需要1或2.我根据需要使用jQuery .hide和.show隐藏或显示选择元素,但是当我提交表单时,rails会传递隐藏元素的默认值,因为它们仍然存在,但它们只是隐藏在用户之外。
如何阻止Rails传递隐藏元素的参数?
答案 0 :(得分:1)
我认为最好的方法是在隐藏元素中添加一个类:
$('option').hide(500,function(){
$(this).addClass('toBeRemoved');
});
当你想再次展示时:
$('option').show(500,function(){
$(this).removeClass('toBeRemoved');
});
最后当你想提交表格时:
$('form').submit(function(){
$('.toBeRemoved').remove();
});
答案 1 :(得分:0)
您可以使用选项{include_blank:true},默认选项会将空白数据发送到服务器。