やや複雑な形式でjquery検証を使用しています。検証ルールは、フォームフィールドにクラスを割り当てることによってコードに追加されますが、追加のパラメーターを使用して機能させることができないようです。恐れているjQueryのドキュメントにはあまり幸運がありません。
以下は、私にとってうまくいくものとうまくいかないものの例です。この例は明らかにあまり役に立ちません。
動作中(以外でエラーが表示されますa
)
(擬似コード)
$fieldXclasses = "myrule";
生成されたHTML
<input id="x" name="x" value="fromdatabase" class="myrule error" type="text">
jsメソッド:
jQuery.validator.addMethod("myrule", function(value, element) {
return this.optional(element) || /^a$/.test(value);
}, "Please enter 'a'");
'fromdatabase'は明らかにそうではないので、余分なクラスとして "error"a
があり、"myrule"関数に失敗します。a
フィールドに入力するとclass="docnmr valid"
、期待どおりに変更されます。これからの私の結論は、私の検証セットアップが単純なケースで機能しているということです。したがって、検証プラグインをロードする方法でエラーを探す必要はありません。
動作しない:
(擬似コード)
$fieldXclasses = "myrule:1";
生成されたHTML
<input id="x" name="x" value="fromdatabase" class="myrule:1 valid" type="text">
jsメソッド:
jQuery.validator.addMethod("myrule", function(value, element,param) {
return this.optional(element) || /^a$/.test(value);
}, "Please enter 'a'");
現在、初期状態は最初から間違っています。要件を満たしていないため、有効ではなくエラーになるはずです。クラスは、パラメーターとして関数をmyrule:1
呼び出すものとして解析されないと想定しています。しかし、これがパラメータを追加する方法だと私が思ったものですが、jquery-documentationで正しいメソッドを簡単に見つけることはできません。myrule
1
誰かがパラメータを追加する方法について私に教えてもらえますか?
背景:最終的には、互いに依存しているため、別のフィールド値をパラメーターとして使用することが目標です。this
別のオプションは、正しいフィールドを見つけるために、パラメーターとルール内のオブジェクトを忘れることです。しかし、それが実現可能かどうかはわかりません。