2017-04-12 15 views
0

私のフォームの有効性をプログラムで検証しようとしていますが、電子メールに無効な値を入力したとしても "#btnSet"フィールドをクリックするとfalseになります。jQueryの検証 - 。最初の試行が有効ではない無効なメソッド

$.validator.addMethod(
    "regex", 
    function(value, element, regexp) { 
    var re = new RegExp(regexp); 
    return this.optional(element) || re.test(value); 
    }, 
    "Please check your input." 
); 

var validator = $("#myForm").validate({ 
    rules:{ 
    cen:"email", 
    frm:{email:true,required:true}, 
    sub:{required:true, minLength:3,maxLength:50}, 
    fn:{required:true,minLength:3,maxLength:50}, 
    forCols:{regex:"^[1-9]?[1-9](,[1-9]?[1-9])*$"}, 
    ftrCols:{regex:"^[1-9]?[1-9](,[1-9]?[1-9])*$"} 
    } 
}); 

$("#btnSet").on("click",(function(validator){ 
    return function(){     
    alert(validator.valid()); 
    if(!validator.valid()){ 
     validator.showErrors(); 
     return; 
    } 
    } 
}(validator))); 

私はこの機能

$("#btnSet").on("click",function(){     
    alert($("#myForm").valid()); 
    if(!$("#myForm").valid()){ 
    return; 
    } 
}); 

にクリックイベントハンドラを交換した場合それは

a.validator.methods [D]以下のエラーを与えることは未定義である

+0

正しく読みやすくするために、あなたのコードをフォーマットしてください。 – Sparky

答えて

1

a.validator.methods[d] is undefinedは、未定義のメソッド(ルール)があることを意味します。言い換えれば、無効なルール...

sub:{required:true, minLength:3,maxLength:50}, 

この場合、ルールのスペルが正しくありません。それはminLengthmaxLengthはないが、minlengthmaxlength ...

.... 
sub: { 
    required: true, 
    minlength: 3, 
    maxlength: 50 
}, 
.... 
関連する問題