1

特定の単語をチェックする Jquery Validation Plugin のカスタム ルールを作成する必要があります。

この場合、ユーザーは「cat」という単語を入力フィールドに入力して、質問に正しく答える必要があります。カスタムルールでは、答えを「猫」として定義する必要があります。私は変数として考えていたので、それを確認しました。

私の失敗した試み:

jQuery.validator.addMethod("answercheck", function(value, element) { 
  var password = string('hot');
  return value(password); 
}, "Type the correct answer");

そしてセットアップ:

rules: {
    input_answer{
        required: true,
        answercheck: true
    }

messages: {
    input_answer{
        required: "Answer the question",
        answercheck: "Your answer is incorrect"
    }

何か案は?

4

1 に答える 1

0

他の人が述べているように、これは安全な方法ではありません。なぜなら、誰でも JavaScript を表示/操作して簡単にバイパスできるからです。

ただし、質問に簡単に答えるために、これがどのように行われるかを示します。(これは、 の使用に関する優れた学習演習でもありaddMethodます)...

jQuery.validator.addMethod('answercheck', function (value, element) { 
    return this.optional(element) || /^\bcat\b$/.test(value);
}, "Type the correct answer");

また、下にメッセージを指定する必要はありません。これは、それ自体answercheckの中で既に上で定義されているためです。(このコードでは、中かっこ、コロン、およびコンマmethodも欠落していました。){:,

rules: {
    input_answer: { // <- missing colon after input_answer
        required: true,
        answercheck: true
     }
}, // <- missing brace & comma
messages: {
    input_answer: { // <- missing colon after input_answer
        required: "Answer the question"
        //, answercheck: "Your answer is incorrect"  // not needed, specified in method
    } 
} // <- missing brace and maybe a comma depending on what follows

ワーキングjsFiddle DEMO

http://jsfiddle.net/ht8Lu/


ドキュメントに従って、独自のカスタム メソッドを作成する必要があります。

カスタム検証メソッドを追加します。これは、名前 (有効な JavaScript 識別子である必要があります)、JavaScript ベースの関数、およびデフォルトの文字列メッセージで構成されている必要があります。

引数:

名前; 文字列 メソッドの識別と参照に使用されるメソッドの名前は、有効な JavaScript 識別子である必要があります

方法; Callback 実際のメソッドの実装で、要素が有効な場合に true を返します。最初の引数: 現在の値。2 番目の引数: 検証済みの要素。3 番目の引数: パラメータ。

メッセージ (オプション); 文字列、関数 このメソッドで表示されるデフォルトのメッセージ。jQuery.validator.format(value) によって作成された関数にすることができます。未定義の場合、既存のメッセージが使用されます (ローカライズに便利です)。それ以外の場合は、フィールド固有のメッセージを定義する必要があります。

于 2012-12-19T21:46:09.583 に答える