Rails - 如果ID被隐藏,删除参数?

时间:2014-09-30 19:21:34

标签: jquery html ruby-on-rails

我有一个带有一些选项的表单,如下所示 -

<%= 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传递隐藏元素的参数?

2 个答案:

答案 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},默认选项会将空白数据发送到服务器。