【发布时间】:2011-03-02 09:49:50
【问题描述】:
我正在使用 JQuery 通过 ajax 请求执行表单提交。我用
form.submit(function() {
if( success ) {
return true;
}
validate(); //proceeds to an ajax call
return false;
}
请求成功后,我想继续进行表单提交或用户回调。因此,如果用户回调未定义,我将在表单验证成功时提交表单(来自我的 validate 函数)。
config = {
successCallback: function() {
success = true;
form.submit(); //does not work
}
};
validate = function() {
$.ajax(
...
success: function(data) {
//code logic
config.successCallback();
}
);
};
ajax 成功回调将调用 config.successCallback(),如果它从未被用户覆盖,它将继续进行正常的表单提交。我尝试使用实例变量(成功)来确保“返回 true”将继续进行默认表单提交。
不幸的是,这不起作用。即使设置了实例变量,阻止默认表单提交的“return false”语句似乎也会忽略任何进一步的提交调用。它仅在再次单击提交按钮后才起作用(使其工作两次)。
是否有任何解决方法。我想在提供时使用用户回调,但在不提供时继续使用默认表单提交,并且由于我使用 ajax 函数来验证表单,所以 ajax 成功回调使事情变得复杂。
【问题讨论】: