Jquery Rails-如果ID隐藏,是否删除参数?
我有一个表单,其中包含一些选择选项,如下所示-Jquery Rails-如果ID隐藏,是否删除参数?,jquery,html,ruby-on-rails,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) %> 在表单的其他地方,用户可以
<%= 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) %>
在表单的其他地方,用户可以决定是否需要所有3个选项,或者只需要1个或2个。我根据需要使用jQuery.hide和.show来隐藏或显示所选元素,但是当我提交表单时,rails会以任何方式传递隐藏元素的默认值,这是有意义的,因为它们仍然存在,只是对用户隐藏
如何阻止Rails为隐藏元素传递参数?您可以使用选项{include\u blank:true},默认选项将向服务器发送空白数据。我认为最好的方法是向隐藏元素添加一个类:
$('option').hide(500,function(){
$(this).addClass('toBeRemoved');
});
当您想再次显示时:
$('option').show(500,function(){
$(this).removeClass('toBeRemoved');
});
最后,当您想要提交表单时:
$('form').submit(function(){
$('.toBeRemoved').remove();
});
Rails与讨论基本无关-问题是“如何阻止浏览器传递隐藏元素的参数?”您可以完全删除元素,或者添加一个隐藏字段,将参数标记为隐藏(服务器端代码可以处理)。