id
notによって特定の入力要素に検証ルールを割り当てる必要がありname
ます。
これを行うために、私は次のコードを実行しています:
$("#cvc").rules("add", { required: true, validateCvc: true });
$("#cardNumber").rules("add",
{ creditcard: true, messages: { creditcard: "Invalid Card Number" } });
ただし、これは実際にはフォームのすべての入力にルールを割り当てています。別の入力に添付されたルールをログに記録することで、これを確認できます。
console.log($("#name").rules());
出力:
Object {required: true, validateCvc: true, creditcard: true}
アップデート
これは、私が見つけ始めているjQuery Validate Unobtrusiveプラグインと関係があるようですが、それは価値があるよりも面倒です。validate
ルールを追加する前に、検証を設定するコードが呼び出しています。
function validationInfo(form) {
var $form = $(form),
result = $form.data(data_validation),
onResetProxy = $.proxy(onReset, form);
if (!result) {
result = {
options: { // options structure passed to jQuery Validate's validate() method
errorClass: "input-validation-error",
errorElement: "span",
errorPlacement: $.proxy(onError, form),
invalidHandler: $.proxy(onErrors, form),
messages: {},
rules: {},
success: $.proxy(onSuccess, form)
},
attachValidation: function () {
$form
.unbind("reset." + data_validation, onResetProxy)
.bind("reset." + data_validation, onResetProxy)
.validate(this.options);
},
validate: function () { // a validation function that is called by unobtrusive Ajax
$form.validate();
return $form.valid();
}
};
$form.data(data_validation, result);
}
return result;
}
アップデート2
これがレポです-http://jsfiddle.net/benfosterdev/emZB8/
2番目に指定されていなくても、これが両方のフィールドに「必須」ルールを明確に設定していることがコンソールで確認できます。
検証プラグインを直接操作する場合は、目立たないプラグインへの参照を削除することをお勧めします。