在.each()循环中打破jQuery函数执行失败

时间:2016-04-12 08:56:02

标签: jquery function return each

我有以下表格

<input class="required" id="name" value="some content"/>
<input class="required" id="address" value=""/>
<input class="required" id="lastname" value="some content"/>

以及以下jQuery函数。它包含一个.each()循环来检查一些输入。检查失败时,该函数应该断开并返回false

function check() {
  $('.required').each(function() {
    var input = $(this);
    console.log(input.attr('id'));

    if (input.val() == null || input.val() == '') {
      console.log('*** Failed ***');
      return false;
    }
  });

  console.log('Other code');
  return true;
}

不幸的是,当我运行代码时,我看到以下输出:

name
address
*** Failed ***
Other code

.each()循环在第一次失败后正确停止,但检查功能似乎继续运行。我怎样才能打破执行?这是jsFiddle

2 个答案:

答案 0 :(得分:2)

function check() {
  var valid = true;
  $('.required').each(function() {
    var input = $(this);
    console.log(input.attr('id'));

    if (input.val() == null || input.val() == '') {
      console.log('*** Failed ***');
      valid = false;
      return false;
    }
  });

  if (!valid) return false;

  console.log('Other code');
  return true;
}

答案 1 :(得分:0)

return false只会破坏$.each语句,但函数会继续执行下一条指令(console.log('Other code');)。