我正在开发一个搜索表单。
搜索表格有2个部分, 首先使用一些选择,输入和提交按钮进行简单搜索。 第二个包含许多选择,复选框,收音机,输入和提交按钮。
我正在使用GET方法,因为我想要查询字符串中的所有字段。 example.com/cars-parts/cars-for-sale/?country=205&city=19&cars_category=462
但问题是,如果用户没有选择某些字段(因为他不想应用此条件),那么很多空字段会使查询字符串过长。
问题:
我想在表单提交之前删除(禁用或需要)所有空字段,以便查询字符串仅包含具有值的字段。
注意:仅建议使用表单获取方法。在过去我使用POST方法,并且没有在查询字符串中传递任何值,但现在我想要查询字符串中的值。
感谢您的阅读。
答案 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()
方法中包含那些没有值的输入。