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

时间:2013-05-22 13:42:29

标签: javascript jquery forms

我正在尝试循环表单以检查空字段然后执行并运行。我现在正在使用下面这个我在这个网站上找到的东西,但是发生了什么,每个循环检查1字段,并看到1不是空的,仍然执行其他功能。我想我需要立即检查所有然后执行下一个功能。我怎么能做到这一点?

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

...谢谢

5 个答案:

答案 0 :(得分:9)

使用filtering,很简单:

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

if (anyFieldIsEmpty) {
    // empty fields
}

DEMO: http://jsfiddle.net/Lz9nY/

答案 1 :(得分:1)

$('.enter-info--ownerInfo .req').each(function() {

  if ($(this).val() == "")
  {
     alert("empty field : " + $(this).attr('id'));
  }

});

答案 2 :(得分:1)

首先选择所有字段:

var fields = $('.enter-info--ownerInfo .req')

然后将它们过滤到具有空值的那些:

fields.filter(function() {
    return this.value === '';
});

然后检查生成的对象的length属性。如果它等于0,那么所有字段都有一个值,否则你执行你的函数。

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

答案 3 :(得分:0)

您可以使用循环和标记:

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

if (valid) {
    // all fields are valid
}

答案 4 :(得分:0)

您可以使用.filter方法将元素缩减为符合条件的元素:

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