2011-10-21 14 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

I検証しようとすると

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(); 
    } 
}); 
関連する問題