防止提交直到ajaxes完成

bgc*_*ode 5 javascript ajax jquery

我正在使用jQuery,我想这样做,以便在所有ajax调用完成之前表单提交不起作用.

我想到这样做的一种方法是存储一个布尔值,该值指示是否有ajax请求正在进行.它会在每个结尾处设置为false.

我不确定这是否是最好的方式,所以我很感激任何输入.

Kra*_*anu 7

您应该使用整数计数器(var i=0;),而不是使用布尔值.

i++ 每次发出AJAX请求时,

i-- 每次完成AJAX请求.

使用计数器的好处是它允许您一次发出多个AJAX请求.使用布尔值时,它更加错误,因为发出多个请求可能导致提交按钮在操作完成之前解锁.

至于用户界面,你应该考虑使用某种"加载"指示器来表明它是否正常工作.然后,一旦计数器回零,您可以隐藏加载指示器并启用提交功能.