有条件地从提交中跳过表单字段,减少URL混乱

时间:2010-07-08 05:41:36

标签: javascript jquery url form-fields

我有多个隐藏的表单字段,用于存储有关当前视图的值(例如,如果某些,通常隐藏的div是可见的等等),以便在表单发回时恢复布局。

问题在于我总是提交所有这些隐藏字段,即使它们处于默认,在此过程中会产生大量不必要的URL混乱(例如http://www.example.com/view?ab=&ac=&ad=等等)。

我宁愿提交实际影响视图的字段(意思是,没有指定的默认值),以便将URL杂乱降至最低。

我尝试手动删除/插入输入,但这是一场噩梦。有更好的方法吗?

3 个答案:

答案 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中?实际上,这通常在许多网站上完成。如果您想要更加小心,可以将显示选项存储在每个用户的数据库中,但这是您的选择。