JS查看是否有任何子输入为空

时间:2017-06-28 09:15:01

标签: javascript

var valid = false;
        $("#f1 input").each(function () {
            if($.trim($(this).val()) != 0) {
                valid = true;
            }
        });
        console.log(valid);

上面的代码应该检查#f1内的所有输入,如果有空,它将打印为false。但现在它只要求每个子输入中的一个具有打印值的值。

我该如何解决这个问题?

3 个答案:

答案 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);