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