如何使用一个IF语句验证多个函数 - Javascript,jQuery

时间:2011-07-17 17:52:45

标签: javascript jquery function if-statement

我想验证多个函数,并且对于每个返回false的函数,都要做一些动画。

以下是代码:

                function validarChido(){ 
                    var dedo = $('#dedo_pick');
                    if(dedo.children().size() < 2){  
                        dedo.animate({'background-color' : 'red'},200);
                        dedo.animate({'background-color' : '#EEE'},200);
                        return false;  
                    }  
                    else{return true;}  
                }

                function validarEx(){ 
                    var valEx = $('#rate1');
                    if(valEx.children().size() < 2){  
                        valEx.animate({'background-color' : 'red'},200);
                        valEx.animate({'background-color' : '#EEE'},200);
                        return false;  
                    }  
                    else{return true;}  
                }

$('#form').submit(function(){  
                    if( validarChido() && validarEx() )  
                            {return true }
                        else  
                            {return false; }
                    }); 

当我发送表单时,我只看到第一个执行颜色动画的函数,显然是因为表单验证IF语句没有评估下一个函数,因为第一个函数在这里导致了错误if( validarChido() && validarEx() )

有没有办法评估所有函数并查看每个函数中的动画,然后如果一切都是真的则发送表单?

3 个答案:

答案 0 :(得分:1)

不要返回false或true,而是执行类似以下的操作:

function validarChido() {
                var dedo = $('#dedo_pick');
                if(dedo.children().size() < 2){  
                    dedo.animate({'background-color' : 'red'},200);
                    dedo.animate({'background-color' : '#EEE'},200);
                    return "error";  
                }  
                else{return "";}  
            }

            function validarEx(){ 
                var valEx = $('#rate1');
                if(valEx.children().size() < 2){  
                    valEx.animate({'background-color' : 'red'},200);
                    valEx.animate({'background-color' : '#EEE'},200);
                    return "error";  
                }  
                else{return "";}  
            }

$('#form').submit(function(){  
     var check = validarChido();
     check += validarEx();

                if( check == "" )  
                        {return true }
                    else  
                        {return false; }
                }); 

答案 1 :(得分:1)

可能是这样的:

$('#form').submit(function(){  
    var validarChidoResult = validarChido(),
        validarExResult = validarEx();

    if( validarChidoResult && validarExResult )  
        {return true }
    else  
        {return false; }
}); 

答案 2 :(得分:0)

var result = validarChido();
result = validarEx() && result;
return result;