我曾经像这样进行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
从不触发(与此链接的建议相反)
submitHandler
我为( onSuccess
,等)尝试了其他一些常用名称,success
但它们似乎都不起作用。