选择事件的顺序,以便在提交之前触发onchange事件

时间:2016-06-14 17:42:10

标签: javascript ajax

我有一个包含各种字段的表单,其中一些字段有onchange或onblur ajax方法。有时这些方法会更新表单中的其他字段。因此,例如,当您更改平均值或标准偏差的字段时,上限和下限的其他字段将自动更新。这可能需要访问服务器,具体取决于计算限制的方式。

问题是,用户可以在进行其中一项更改后立即单击“提交”按钮,在这种情况下,onchange和submit事件都会被点击触发。然后在更新应该更改的字段的ajax方法和可能提交字段的旧值的提交之间存在竞争。

如何确保在onchange方法完成后始终触发提交?感谢。

2 个答案:

答案 0 :(得分:1)

您可以跟踪是否有未完成的ajax请求,如果这样做,则会阻止submit事件的默认操作,而是设置用户尝试提交表单的标记。当最后一个未完成的ajax请求完成时,如果仍然适合提交表单,则以编程方式执行。如果没有,你告诉用户你为什么没有。

答案 1 :(得分:0)

请注意使用$ .active计算有效的ajax请求的选项,请参阅How do I know if jQuery has an Ajax request pending? 似乎没有得到官方支持?