当用户提交表单时,有一种方法只发送非空输入((那些值不等于“”))?
我想实现这个目标,因为我的网站提供了过滤数据的表单,并使用 GET 方法来指示 url 中的查询字符串,但显然是这样的
site.mx/voucher/search/?id=1,2,3,4&date_from=&date_until&comment=&status=6
这样会更漂亮
site.mx/voucher/search/?id=1,2,3,4&status=6
你;)
最佳答案
根据你所说的,你可以使用 jQuery 做这样的事情:
jQuery(function() {
jQuery(form).on('submit',function(e) {
e.preventDefault();
var urlSuffix = '';
jQuery(this).find(input).each(function() {
if(jQuery(this).val() !== '' && jQuery(this).val() !== null) {
if(urlSuffix == '') {
urlSuffix += '?';
} else {
urlSuffix += '&';
}
urlSuffix += jQuery(this).attr('name') + '=' + jQuery(this).val();
}
});
window.location = 'site.mx/voucher/search/' + urlSiffix;
});
});
此函数首先禁用表单的“默认”提交操作,然后将所有表单字段添加到 URL 并重定向。
然而,最简单的方法是将表单的操作简单地指向: site.mx/优惠券/搜索/ 并将方法更改为“GET”
关于javascript - 当使用 jQuery 完成表单提交时,如何发送非空输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571840/