var valid = false;
$("#f1 input").each(function () {
if($.trim($(this).val()) != 0) {
valid = true;
}
});
console.log(valid);
上面的代码应该检查#f1内的所有输入,如果有空,它将打印为false。但现在它只要求每个子输入中的一个具有打印值的值。
我该如何解决这个问题?
答案 0 :(得分:1)
我会反转你的逻辑,以便valid
仅在出现故障时更新。
var valid = true;
$("#f1 input").each(function () {
if($.trim($(this).val()) == 0) {
valid = false;
}
});
console.log(valid);
答案 1 :(得分:0)
是的。你可以在else条件中分配false语句。如果第一个是true
有效被替换为true但是没有得到false
。因为有效的false最初只是在每个函数内部声明.so你可以添加其他。
if ($.trim($(this).val()))
它只能找到一个空的或不是
var valid = false;
$("#f1 input").each(function() {
if ($.trim($(this).val())) {
valid = true;
} else {
valid = false;
}
});
console.log(valid);
答案 2 :(得分:0)
条件($.trim($(this).val()).length != 0
)只有在输入为0
时才会失败,而您需要检查修剪后的值的length
属性。
if($.trim($(this).val()).length != 0){
//.....
}
// or simply check the length property, since 0 is falsy value
// and all other integers are truthy
if($.trim($(this).val()).length){
//.....
}
<小时/> 或者使用
filter()
方法过滤非空输入的另一种方法。
var valid = $("#f1 input").filter(function () {
return $(this).val().trim().length;
}).length > 0;
console.log(valid);