我有一个带有大量文本输入的搜索表单&通过GET提交的下拉列表。我希望在执行搜索时,通过删除查询字符串中的空字段来获得更清晰的搜索url。
var form = $("form");
var serializedFormStr = form.serialize();
// I'd like to remove inputs where value is '' or '.' here
window.location.href = '/search?' + serializedFormStr
你知道我如何使用jQuery做到这一点吗?
发布于 2015-02-13 23:50:32
我不能让汤姆的解决方案工作(?),但我可以使用.filter()
和一个短函数来识别空字段。我使用的是jQuery 2.1.1。
var formData = $("#formid :input")
.filter(function(index, element) {
return $(element).val() != '';
})
.serialize();
发布于 2009-03-04 07:55:37
你可以用一个正则表达式...
var orig = $('#myForm').serialize();
var withoutEmpties = orig.replace(/[^&]+=\.?(?:&|$)/g, '')
测试用例:
orig = "a=&b=.&c=&d=.&e=";
new => ""
orig = "a=&b=bbb&c=.&d=ddd&e=";
new => "b=bbb&d=ddd&" // dunno if that trailing & is a problem or not
发布于 2015-05-12 20:39:58
这对我来说很有效:
data = $( "#my_form input").filter(function () {
return !!this.value;
}).serialize();
https://stackoverflow.com/questions/608730
复制相似问题