gpt4 book ai didi

JQuery如何在ajax调用成功后重新提交表单

转载 作者:行者123 更新时间:2023-12-01 01:29:53 25 4
gpt4 key购买 nike

我正在使用 JQuery 通过 ajax 请求执行表单提交。我用的是

form.submit(function() {
if( success ) {
return true;
}

validate(); //proceeds to an ajax call

return false;
}

请求成功后,我想继续表单提交或用户回调。因此,如果用户回调未定义,我将在表单验证成功时提交表单(通过我的验证函数)。

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 成功回调使事情变得复杂。

最佳答案

确保 success 在范围内,或者在成功回调中使用 form[0].submit() 来提交 DOM 表单并绕过 jQuery 注册处理程序(假设集合中只有一种 DOM 表单)。

http://jsfiddle.net/J4nsx/

后一种方法实际上是 jQuery 验证插件建议解决 too much recursion 的潜在问题的方法。 .

关于JQuery如何在ajax调用成功后重新提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com