我之前问过一个related question,但我现在需要回答的问题现在似乎已经出现了一些特定的切线,所以我认为最好能提出一个新问题。jquery .submit return false not always working
我试图阻止表单提交,直到页面上的所有ajax调用都成功返回。
我对此有一个简单的测试(开始调用时加1到计数器,成功时减1)。
我相信我应该能够做到:
// can we submit yet?
$('#checkoutform').submit(function() {
if (ajaxcallcounter == 0) {
return true;
}
return false;
});
防止表单提交,直到计数器达到零(所有呼叫都完成),但由于某种原因,这似乎并没有100%有效。
我不知道这是一个红色的鲱鱼,但所有从谁管理,以检查出前调用已经完成了使用Mac的Safari客户的报告(这可能仅仅是虽然是巧合)
您可以看到代码正在执行here - 尝试更改发货国家以启动一些ajax呼叫。当计数器> 0时,应该禁用右下角的提交按钮。
我没有对您的答案。我会说你在整个代码中做了大量的'ajaxcallcounter'递增和递减操作。您可能会发现有一个增量和减量函数可以被调用。然后你可以做一些简单的日志记录,看看他们何时被调用。 – user113716 2010-03-03 14:25:58
嗨帕特里克,有很多增加和减少,因为有很多电话! :)我相信他们在正确的时间被调用,但表单被允许提交。 – Ashley 2010-03-05 11:09:10