【问题标题】:How to validate multiple functions with one IF statement - Javascript, jQuery如何使用一个 IF 语句验证多个函数 - Javascript、jQuery
【发布时间】:2011-07-17 17:52:44
【问题描述】:

我想验证多个函数,并为每个返回 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() &amp;&amp; validarEx() )

有没有办法评估所有函数并查看每个函数中的动画,然后在一切正常时发送表单?

【问题讨论】:

    标签: javascript jquery function if-statement


    【解决方案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; }
                    }); 
    

    【讨论】:

      【解决方案2】:

      可能是这样的:

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

      【讨论】:

      • 这对我有用!
      【解决方案3】:
      var result = validarChido();
      result = validarEx() && result;
      return result;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-12
        • 2012-11-12
        相关资源
        最近更新 更多