jQuery验证 - 退出函数

时间:2011-12-15 08:55:10

标签: jquery html

我正在尝试在所需输入无效时退出函数...但遇到问题。请参阅下面的代码。为什么return不起作用?我也试过return falsebreak而没有运气。

代码:

function SendTo(id){        

        ///////// VALIDATE & CLEAR INPUTS ////////////
        var elems = $('form').find('input');
        var arr = jQuery.makeArray(elems);

        jQuery.each(arr, function() {
            var input = $(this);

            //REQUIRED
            if (input.hasClass('required')) {
                if (input.val() == '' || input.val() == input.attr('placeholder')) {
                    input.addClass('fail');
                    $('#messages .error').text('The above fields are required.', function() {
                        $(this).fadeIn('slow')
                    });
                    return;
                }

            }

            //CLEAR
            if (input.val() == input.attr('placeholder')) {
                input.val('[EMPTY]');
            }
        });
}

修改

我使用以下代码:

///////// VALIDATE & CLEAR INPUTS ////////////
        var allGood = true;

        $('form input').each(function() {
            var input = $(this);

            //REQUIRED
            if (input.hasClass('required')) {
                if (input.val() == '' || input.val() == input.attr('placeholder')) {
                    input.addClass('fail');
                    $('#messages .error').text('The above fields are required.', function() {
                        $(this).fadeIn('slow')
                    });
                    allGood = false;
                }
            }
        });
        return allGood;

2 个答案:

答案 0 :(得分:2)

我认为这是因为你正在做jQuery.each。

退出那将只是去下一个。但是,我非常确定return false;,就像Minum说break,而不是conintue

来自网站:

  

我们可以通过使回调函数返回false来在特定迭代中中断$ .each()循环。返回非false与for循环中的continue语句相同;它将立即跳到下一次迭代。   http://api.jquery.com/jQuery.each/

答案 1 :(得分:1)

function a(){
  $.each(b, c() {
   return;//return from each but NOT from function a)
  }
return;//returns from function a
}