简短的答案:您不能-不是这种方式。
一些背景:作为函数的参数提供的回调
$.post是异步执行的。这意味着您将
return proceed在 执行成功回调 之前
执行,并且
proceed始终为
false。有了您的断点,如果等到成功的回调已经执行,
proceed将
true和一切都会好的。
因此,如果要在ajax请求完成后提交表单,则 必须 使用javascript提交。使用jQuery非常简单,只需
$.post使用
data:$("yourForm").serialize()和即可完成jQuery
url: yourForm.action。
基本上,这就是您已经在做的事情,您只需要对实际要将数据发布到的URL重复该调用即可。
编辑:
另一种方法是在表单上设置一个属性,例如
valid,然后在
submit处理程序中检查以下内容:
jQuery("#post").submit(function() { if($(this).data("valid")) { return true; } // Rest of your pre});
在验证ajax请求的成功回调中,您将设置/清除该属性,然后提交:
$("#post").data("valid", true).submit();
编辑:
$.post出于上述相同的原因,您还希望在回调内部启用“ ajax加载” /按钮,因为它是直接在ajax调用返回之前发生的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)