有没有办法在用户提交表单时只发送非空的输入((那些值不等于"“))?
我想要获得这个,因为我的站点提供了表单来过滤数据,并使用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=6ty ;)
发布于 2014-03-22 08:38:27
根据您所说的,您可能会用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/voucher/search/并将方法更改为"GET“
发布于 2014-03-22 08:38:42
您可以通过使用CSS选择器仅选择非空字段来执行此操作:
$("form#search :input[value!='']").serialize()我不能评论,因为我的声誉仍然低于50,但你能告诉我们你是如何提交表格的吗?
发布于 2014-03-22 08:40:28
如果你的表单操作是一个'GET‘,并且你正在使用浏览器的原生表单post/get操作来做这件事,你就不能重写你的浏览器行为(嗯,也许你可以,但你不能控制每个人的浏览器)。
如果您确实想使用ajax并通过js/ajax手动调用提交表单,您可以重写URL查询字符串并发布更干净的版本。否则..。
https://stackoverflow.com/questions/22571840
复制相似问题