1

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

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');
            }

        });

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

有什么帮助吗?

4

2 回答 2

5

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

您可以在 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;
 }
于 2013-05-22T11:24:26.533 回答
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;
}
于 2013-05-22T11:24:34.547 回答