他の人が述べているように、これは安全な方法ではありません。なぜなら、誰でも 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) によって作成された関数にすることができます。未定義の場合、既存のメッセージが使用されます (ローカライズに便利です)。それ以外の場合は、フィールド固有のメッセージを定義する必要があります。