私は目立たない検証を使用している MVC4 プロジェクトを持っていますが、あるセクションではノックアウト js を使用しています。
jquery 検証プラグインを使用するようにノックアウトをセットアップしましたが、$("form").valid() を呼び出すと、期待どおりに動作しません。
検証する行がいくつかあるフォーム内にテーブルをレンダリングするノックアウトがあります。テーブルの最初の行は、検証では無視する必要があり、新しいオブジェクトをリストに追加するために使用されています。この最初の行の各オブジェクトに「firstRow」のクラスを与えました
バリデーターをそのようにセットアップしました
var validator = $("form").validate({
ignore: ".firstRow"
});
しかし、私が電話するとき
$("form").valid()
無効なすべての要素 (最初の行を含む) に、クラス「input-validation-error」が追加されていることに気付きました。
まず、この最初の行は無視されると思います。
第二に、これは目立たない検証であるため、このクラスが適用されるとは思わないでしょう。jquery検証プラグインの代わりに、クラス「エラー」が適用されると思います。
jquery.validation.unobtrusive.js への参照を除外すると、すべてが機能しますが、サイトの残りの部分で必要になるため、これを行うことはできません。
これは jquery.validation.unobtrusive から何らかの形で実行されているコードだと思いますが、これの実行を停止する方法を知りたいですか?
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;
}