表单获取方法:防止在查询字符串中提交空字段

时间:2013-07-24 08:56:02

标签: jquery forms get

我正在开发一个搜索表单。

搜索表格有2个部分, 首先使用一些选择,输入和提交按钮进行简单搜索。 第二个包含许多选择,复选框,收音机,输入和提交按钮。

我正在使用GET方法,因为我想要查询字符串中的所有字段。 example.com/cars-parts/cars-for-sale/?country=205&city=19&cars_category=462

但问题是,如果用户没有选择某些字段(因为他不想应用此条件),那么很多空字段会使查询字符串过长。

问题:

我想在表单提交之前删除(禁用或需要)所有空字段,以便查询字符串仅包含具有值的字段。

注意:仅建议使用表单获取方法。在过去我使用POST方法,并且没有在查询字符串中传递任何值,但现在我想要查询字符串中的值。

感谢您的阅读。

3 个答案:

答案 0 :(得分:1)

您可以在表单提交事件上绑定一个函数,并使用空值删除/禁用所有输入。像这样:

your_form.submit(function() {
    your_form.find('input').each(function() {
        var input = $(this);
        if (!input.val()) {
            input.remove(); // or input.prop('disabled', true);
        }
    });
});

答案 1 :(得分:1)

尝试在$(function(){ ... })部分中使用以下内容:

$('form').submit(function(){$('input[value=]',this).remove();return true;})

这会在提交之前从表单中删除所有空input个元素。您当然可以修改它以包括未选择的选择器框等。

答案 2 :(得分:0)

我认为您必须在包含到.get()方法之前验证所有这些字段,并且不要在.get()方法中包含那些没有值的输入。