Javascript Jquery循环表单检查所有空字段,然后执行一个函数

Javascript Jquery循环表单检查所有空字段,然后执行一个函数,javascript,jquery,forms,Javascript,Jquery,Forms,我试图循环表单来检查空字段,然后执行和函数。我现在使用的是我在这个网站上找到的类似于下面的东西,但是发生的事情是,每个循环检查1个字段,看到1个不是空的,仍然执行else函数。我想我需要一次检查所有内容,然后执行下一个函数。我怎样才能做到这一点 if($('.enter-info--ownerInfo .req').val() != "") { alert("Empty Fields!!") } else { run this function } 谢谢…使用

我试图循环表单来检查空字段,然后执行和函数。我现在使用的是我在这个网站上找到的类似于下面的东西,但是发生的事情是,每个循环检查1个字段,看到1个不是空的,仍然执行else函数。我想我需要一次检查所有内容,然后执行下一个函数。我怎样才能做到这一点

if($('.enter-info--ownerInfo .req').val() != "") {
   alert("Empty Fields!!")
    } else {
    run this function
    }  
谢谢…

使用方便:

var anyFieldIsEmpty = $("form :input").filter(function() {
        return $.trim(this.value).length === 0;
    }).length > 0;

if (anyFieldIsEmpty) {
    // empty fields
}

演示:

您可以使用循环和标志:

var valid = true;
$('.req').each(function () {
    if ($(this).val() == '') {
        valid = false;
        return false;
    }
});

if (valid) {
    // all fields are valid
}
您可以使用方法将元素减少为符合条件的元素:

if $('.enter-info--ownerInfo .req').filter(function () {
  return $.trim($(this).val()) == ""
}).length > 0) {
  alert("One or more fields are empty")
} else {
  // run this function
}

首先选择所有字段:

var fields = $('.enter-info--ownerInfo .req')
然后将它们过滤到具有空值的值:

fields.filter(function() {
    return this.value === '';
});
然后检查结果对象的
length
属性。如果它等于
0
,则所有字段都有一个值,否则执行函数

if(fields.length === 0) {
    // no empty fields
}
else {
    // empty fields
}

您需要检查每个字段,但不能使用单个选择器。是否有理由使用length而不是:$.trim(this.value)==“”?它甚至可能是
return!$。修剪(该值)@Ian不可能是那样的。记住“0”。@VisioN不是真的。试试看:)
“0”
是真实的-唯一错误的字符串是
。这和一个女人相比是不一样的boolean@Ian哈哈!关于这些JS技巧,我只记得。毕竟,我们在这里应该是教授,但仍然在混合这些东西。
:)
if(fields.length === 0) {
    // no empty fields
}
else {
    // empty fields
}