长话短说:
示例代码:
$("#theForm").submit(function() {
$.ajax({
url: theUrl,
type: "POST",
data: theData
}).done(function(theResponse) {
$("#someInput").val(theResponse)
$("#theForm").submit() // [2] Submit the form now
}).fail(function(jqXHR, textStatus) {
alert("Failure")
})
return false // [1] Prevent submission prior to AJAX call completing
})
我的问题是这会产生无限循环。
此函数的最外层返回false
,以防止在AJAX调用结束之前提交表单。在AJAX调用成功完成后,我试图在done()
处理程序中实际提交表单。但是,这只是递归地调用整个onSubmit函数。
如何在onSubmit处理程序中嵌套一个AJAX调用...这样决定是否允许提交是由嵌套的AJAX函数驱动的,而不是它的封闭处理函数?
答案 0 :(得分:3)
你的[2]部分需要直接在表格上发生。
$("#theForm")[0].submit()
这将绕过jQuery绑定事件。