2012-10-22 48 views
1

我正在寫一個jQuery表單驗證插件,它的工作正常。我傳遞的表單ID與它的輸入類型,像這樣:jQuery插件函數返回值

$('#contactForm :input').validateForm();

而且我的插件裏面我有以下代碼:

jQuery(function($) { 
    $.fn.validateForm = function() { 
     var values = new Array(); 
     this.each(function() { 
      $(this).removeClass('error'); 
      if($(this).hasClass('required')) 
      { 
       if($(this).hasClass('number')) 
       { 
        number = $(this).val(); 
        if(number == '' || number.length < 9 || number.length > 13 || isNaN(number)) 
        { 
         $(this).addClass('error'); 
        } 

       }else{ 

        return true; 

       } 
      } 
     }); 
    } 
}); 

現在我的問題是,我想我的插件返回值爲true或false。如果表單經過驗證,那麼它應該返回true,否則返回false。

我想要實現這樣的

val = $('#contactForm :input').validateForm(); 
if(val){ 
    //DO AJAX 
} 

我怎麼能這樣做?

回答

0
jQuery(function($) { 
    $.fn.validateForm = function() { 
     var values = new Array(); 
     var isOK = true; /* Form is OK unless we detect an error */ 
     this.each(function() { 
      $(this).removeClass('error'); 
      if($(this).hasClass('required')) 
      { 
       if($(this).hasClass('number')) 
       { 
        number = $(this).val(); 
        if(number == '' || number.length < 9 || number.length > 13 || isNaN(number)) 
        { 
         $(this).addClass('error'); 
         isOK = false; /* Remember that error was detected */ 
        } 

       } 
      } 
     }); 
     return isOK; /* let caller know if error was detected */ 
    } 
}); 
+0

感謝它的工作 –