2012-01-24 13 views
1

jQueries検証プラグインがついていますjQueries検証プラグインが常に入力時に表示されます

私の入力は常に私にエラーを与えます。コードはここにあります:http://jsfiddle.net/OrangeTux/6zUMd/1/

郵便番号、電話番号、その他の特定の番号のようなカスタムルールを作成したいと思います。したがって、私は正規表現ルールのための新しいメソッドを作成します。このルールは正しく動作します。その後

$.validator.addMethod("regexp", function(value, element, param) { 
    return this.optional(element) || !param.test(value); 
}); 

私は、新しいメソッドを作成:

jQuery.validator.addMethod('postalCode', function(value, element) {});

をそれから私は、新しいクラスを作成し、どのように私はこの問題を解決することができ、ルールに

//add validation rules for each custom method 
jQuery.validator.addClassRules({ 
    postalCode: { 
     'postalCode' : true, 

     //regexp: /[^[0-9]{10}$]/, //<---- This regex doesn't work 
     //email: true    // <----- This rule doens't work either 
    } 
}) 

を追加するでしょうか?

+0

あなたは 'postalCode'ルールの実装を定義していません。 ..あなたは何をしたい/したいと思いますか? –

+0

class = "postalcode"のフィールドの入力がregexp(regexp:/ [^ [0-9] {10} $] /)と一致するかどうかを確認したいと思います。そして入力がregexpと一致しない場合、私はエラーを表示したい。 – OrangeTux

答えて

1

あなたは少し後ろにあることがあります。まず第一に、regexルールは正しくはありません。追加する

そのかかわらず、向こう
return this.optional(element) || param.test(value); 

、次のようにカスタムルールを追加するための好ましい方法は、addMethodを使用することで、その後、addClassRules:あなたはルールが通過するときの方法からtrueを返すようにしたいので、あなたは返す必要がありますその方法を含むクラスルール:

jQuery.validator.addMethod("postalCode", function (value, element, params) { 
    return this.optional(element) || /^[0-9]{10}$/.test(value); 
}, "Please enter a valid Postal Code"); 

//add validation rules for each custom method 
jQuery.validator.addClassRules({ 
    postalCode: { 
     postalCode: true 
    } 
}); 

$("#form").validate({ 
    debug: true, 

    //set place were error is shown 
    errorPlacement: function(error, element) { 
     error.appendTo(element.parent("td").next("td")); 
    }, 
}); 

例:http://jsfiddle.net/LCA9C/

+0

ニース、これは動作します。フォローアップの質問。私はこのフィールドを必要としたい。しかし、addClassRulesメソッドに 'required:true'を追加すると、必要なルールに接続されているエラーメッセージのみが表示されます。 'Please、some data'。 2つのルールのメッセージを表示する方法はありますか? – OrangeTux

+0

はすべて機能しています。 – OrangeTux

関連する問題