2011-10-21 99 views
3

我有一個表單需要驗證,但沒有提交按鈕。 所以爲了驗證完成,我按照http://docs.jquery.com/Plugins/Validation/valid將方法添加到jQuery驗證,無需提交按鈕

的例子告訴調用.valid()函數。 所以我加了下面的代碼工作得很好:

  $(".getcars").click(function() { 
       valid = $("#form1").valid(); 
       if(valid){ 
        ajaxCall(); 
       } 

      }); 

現在我想要添加更多規則驗證領域,所以我嘗試

jQuery.validator.addMethod("lettersandnumonly", function(value, element) { 
       return this.optional(element) || /^[0-9A-Za-z]+$/i.test(value); 
        }, "Letters and numbers only "); 
jQuery.validator.addMethod("nowhitespace", function(value, element) { 
       return this.optional(element) || /^\S+$/i.test(value); 
      }, "No white space please"); 

      $(".getcars").click(function() { 
       valid = $("#form1").valid(
       { 
       rules: { 
        postal_code: { 
         maxlength: 6, 
         lettersandnumonly: true, 
         nowhitespace: true 
        } 
       } 
      }); 
       if(valid){ 
        ajaxCall(); 
       } 

      }); 

,但是這是行不通的。任何人都可以告訴我在添加規則時我做錯了什麼?

+0

順便說一句,我場一m試圖驗證是

Please enter your Postal Code or a part of it!
kk1957

回答

1

rule定義在validate()的初始調用中進行。由於valid()僅適用於那些有validate()呼籲他們的形式,我假設你有一個行代碼中調用某個地方validate()

$("#form1").validate(); 

所有你應該做的就是將你的規則定義成初始撥打:

$("#form1").validate({ 
    rules: { 
     postal_code: { 
      maxlength: 6, 
      lettersandnumonly: true, 
      nowhitespace: true 
     } 
    } 
}); 

...然後調用.valid()以後像你最初做的:

$(".getcars").click(function() { 
    valid = $("#form1").valid(); 
    if(valid) { 
     ajaxCall(); 
    } 
}); 
相關問題