Как проверить несколько функций одним оператором IF - Javascript, jQuery - PullRequest
0 голосов
/ 17 июля 2011

Я хочу проверить несколько функций, и для каждой функции, возвращающей 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 проверки формы не оценивает следующую функцию, потому что первая выдает здесь false if( validarChido() && validarEx() )

Есть ли способ оценить все функции и увидеть анимацию в каждой из них, а затем отправить форму, если все верно?

Ответы [ 3 ]

1 голос
/ 17 июля 2011

Это может быть что-то вроде этого:

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

    if( validarChidoResult && validarExResult )  
        {return true }
    else  
        {return false; }
}); 
1 голос
/ 17 июля 2011

Вместо возврата 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; }
                }); 
0 голосов
/ 17 июля 2011
var result = validarChido();
result = validarEx() && result;
return result;
...