我在表单中有几个输入,但我想要实现的只是发送至少有一个字符(字母数字)的那些,但是对于那些有空或空白值的人不能发送。 问题是,当用户通过按空格键错误地发送空白时,它会序列化一个加号(+)。
到目前为止,这是我发送序列化非空值的方法。
//this will print a query string with the values, but for whitespaces it sends '+' signs.
$('#myform').find('input').not('[value=""]').serialize();
答案 0 :(得分:2)
您可以执行以下操作:
var obj = {};
$('#myform').find('input').each(function() {
var value = $(this).val().trim();
var inputName = $(this).attr('name');
if(value.length != 0) {
obj[inputName] = value;
}
});
$(obj).serialize();
答案 1 :(得分:2)
您可以使用$.trim
:
$('#myform').find('input').filter(function() {
return $.trim(this.value) != "";
}).serialize();
这也将取实际用户输入(.value
属性)而非.defaultValue
(value
属性),如.not('[value=""]')
答案 2 :(得分:1)
通过谷歌搜索这似乎工作得很好:
$('#myform').find('input:filled').serialize(),