我有多个隐藏的表单字段,用于存储有关当前视图的值(例如,如果某些,通常隐藏的div是可见的等等),以便在表单发回时恢复布局。
问题在于我总是提交所有这些隐藏字段,即使它们处于默认,在此过程中会产生大量不必要的URL混乱(例如http://www.example.com/view?ab=&ac=&ad=等等)。
我宁愿提交仅实际影响视图的字段(意思是,没有指定的默认值),以便将URL杂乱降至最低。
我尝试手动删除/插入输入,但这是一场噩梦。有更好的方法吗?
答案 0 :(得分:2)
使用jQuery,您可能只需remove()
传输之前的那些表单元素。我能想到的另一种方法是删除name attribute
。
$('form').bind('submit', function(){
$(this).children('input').each(function(){
if(this.value === this.defaultValue)
$(this).remove();
});
});
答案 1 :(得分:1)
尝试禁用它们 -
“禁用的控件无法成功。” - http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2
答案 2 :(得分:0)
除非您有理由在URL中保留这些选项,否则为什么不将这些值存储在cookie中?实际上,这通常在许多网站上完成。如果您想要更加小心,可以将显示选项存储在每个用户的数据库中,但这是您的选择。