我曾经这样做过我的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);
}
});
}
});
,我认为,除非首先通过验证,否则它将不会发出请求。
验证方面完全按预期工作,使用模型中的数据属性mvc设置到我视图的DOM中。
这个失败的部分,我无法弄清楚为什么,是我回到不是ajax。页面只是重新加载,我的submitHandler
永远不会触发(与this link建议的内容相反)
我为submitHandler
(onSuccess
,success
等尝试了一些其他常用名称,但它们似乎都没有效果。