2009-06-12 6 views
2

私は自分のフォームにcaptchaを追加しました。このフィールドを検証したいと思います。jqueryカスタムメソッドに関する質問、

jQuery.validator.addMethod("matchCaptcha", function(value,element) { 
    return this.optional(element) || value == '#request.strCaptcha#'; 
}); 

#request.strCaptcha#この部分は、単にルールの下で「cZk9ljW」

のような英数字の文字の何かを返し、私が追加:

captcha : { matchCaptcha : true } 

を検証が実行されないと私はスクリプトからエラーを取得していません。私は間違って何をしていますか?ありがとう

答えて

1

あなたが掲示したすべてのものはうまく聞こえると思います。

  1. あなたの$(document).ready()内部addMethod、右をやっていますか?
  2. これを検証機能内のデバッグalert()で実行して、実際に実行されていないかどうかを確認し、実行するのではなく常にtrueを返していますか?
  3. キャプチャのテキストエリアの入力名はcaptchaですか?

あなたがalert()を追加し、検証メソッドが呼び出されている見つからない場合は、あなたのための私の推薦はちょうどthis.optional(element) ||一部を取り除くことです。私はあなたがキャプチャをとにかくオプションにしたいとは思わない。

0

これはちょっと微妙でした。私はColdFusionを使用しています。キャプチャを作成して表示するカスタムタグを作成しました。カスタムタグ呼び出し後にjQuery.validator.addMethodを削除しました。それから私はこれを取り除いた。オプション(要素)||部。また、別の$()。ready(function(){...})を追加する必要がありました。

だから、それは次のようになります。

$()レディ(関数(){ jQuery.validator.addMethod( "matchCaptcha"、機能(値、要素){ 戻り値==「#request .strCaptcha# '; }); });

私はまだ妥当性検査のルールでcaptcha:{matchCaptcha:true}を持っています。ヘッドアップをありがとう。