3

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

搜索表单有 2 个部分,第一个是简单的搜索,带有一些选择、输入和提交按钮。其次包含许多选择、复选框、单选、输入和提交按钮。

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

但问题是如果用户不选择某些字段(因为他不想应用此条件)很多空字段并使查询字符串太长。

问题:

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

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

感谢您的阅读。

4

3 回答 3

2

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

your_form.submit(function() {
    your_form.find('input').each(function() {
        var input = $(this);
        if (!input.val()) {
            input.remove(); // or input.prop('disabled', true);
        }
    });
});
于 2013-07-24T09:00:18.763 回答
1

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

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

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

于 2013-07-24T09:15:54.260 回答
0

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

于 2013-07-24T09:07:40.927 回答