jQuery返回不按预期工作

时间:2013-05-22 11:20:38

标签: jquery return

以下函数正确验证空字段:

function empty_field(element){
    element.each(function(){
        if($(this).val() == ''){
            $(this).addClass('error');
        }
        else{
            $(this).removeClass('error');
            return true;
        }
    });
}

但是,我想通过执行以下操作来检查验证是否完成:

        submit.click(function(e){
            e.preventDefault();

                            var input = $('.input');

            if(empty_field(input))//if the form is valid
            {
                console.log('form validated');
            }

        });

当我点击提交按钮时,表单会被验证,但控制台日志不起作用,这意味着可能是条件错误。

任何帮助?

2 个答案:

答案 0 :(得分:4)

你的内部函数不会从外部函数返回。

您可以使用empty_field函数范围内的变量进行修改。例如。

function empty_field(element){
   var valid = true;
   element.each(function(){
     if($(this).val() == ''){
        $(this).addClass('error');
        valid = false;
     }
     else{
        $(this).removeClass('error');
     }
   });
   return valid;
 }

答案 1 :(得分:4)

你没有从你的职能部门返回任何东西,

function empty_field(element){
    var noError = false;
    element.each(function(){
        if($(this).val() == ''){
            $(this).addClass('error');
        }
        else{
            $(this).removeClass('error');
            noError = true;
            return false;  // to break the `.each()`
        }
    });
 return noError;
}