私は次のように ajax 呼び出しを行っていました。
form.bind("submit", function(e) {
e.preventDefault();
form.ajaxSpin("large");
form.ajaxSubmit({
success: function(result) {
if (!b.ajaxFailure(result, true)) {
if(b.validateForm(form,result)) {
console.log(result); // TODO: something?
}
}
},
complete: function() {
form.ajaxSpin(false);
}
});
});
これまでのところ、私のデザインは徐々に強化されています。
そして今、実際のリクエストを行う前に、クライアント側でもモデルの検証を実装したいと考えています。
最新のスクリプトjquery.validation.js
とともに、プラグインをプロジェクトに含めました。jquery.validation.unobtrusive.js
次に、コードを次のように変更しました。
form.validate({
submitHandler: function() {
form.ajaxSpin("large");
form.ajaxSubmit({
success: function(result) {
if (!b.ajaxFailure(result, true)) {
if (b.validateForm(form, result)) {
console.log(result); // TODO: something?
}
}
},
complete: function() {
form.ajaxSpin(false);
}
});
}
});
これは、検証が最初に通過しない限りリクエストを行わないことを除いて、まったく同じであると私は考えました。
検証の側面は、モデルからビューのDOMに設定されたデータ属性mvcを使用して、完全に期待どおりに完全に機能します。
これが失敗し、その理由がわからない部分は、私が ajax ではないことに戻ったことです。ページがリロードされるだけで、submitHandler
決して起動しません(このリンクが示唆するものとは反対です)
submitHandler
( onSuccess
、など)の他の一般的な名前をいくつか試しましたsuccess
が、どれも機能していないようです。