我在页面上有一堆文本框和提交按钮。我已经连接了文本框的TextChanged事件来执行服务器端方法。用户在文本框中输入值,将标签输出到下一个文本框(触发textchanged事件),最后单击提交按钮,调用另一个服务器端方法。所有的功能都是异步的。提交方法只有在textchange方法完成后才需要执行,因为它们共享相同的数据。问题有时textchange方法需要稍长的时间才能完成,并且submitchange方法在textchange函数完成之前触发。我如何防止这种情况?我如何锁定/排队功能?jquery - 防止这种竞争条件
1
A
回答
1
不要锁定或排队任何东西!只需禁用提交按钮,直到更改事件+ ajax完成。
$('#submitBtn').attr('disabled', 'disabled');
或者jQuery的1.6+:
$('#submitBtn').prop('disabled', true);
而当变化AJAX完成:
$('#submitBtn').attr('disabled', '');//or $('#submitBtn').prop('disabled', false)
0
从它的声音看看本Alman的jQuery的队列插件http://benalman.com/projects/jquery-message-queuing-plugin/那可能是你需要的。
相关问题
- 1. 如何防止这种竞争条件?
- 2. 防止竞争条件
- 3. 使用Java防止竞争条件
- 4. PHP防止MySQL竞争条件
- 5. 如何处理这种竞争条件?
- 6. 竞争条件
- 7. 竞争条件
- 8. 竞争条件
- 9. ASP.NET竞争条件
- 10. find_or_create竞争条件
- 11. 的竞争条件
- 12. 多个NSManagedObjectContexts - 防止竞争条件和死锁
- 13. 如何防止选择和更新之间的竞争条件
- 14. 使用数据库事务防止竞争条件(Laravel)
- 15. 如何在我的情况下防止竞争条件
- 16. 防止Python3中信号处理的竞争条件
- 17. 如何使用锁来防止竞争条件
- 18. MySQL竞争条件 - 防止多次插入
- 19. 使用信号来防止竞争条件(C)
- 20. 这段代码有竞争条件吗?
- 21. 什么是这种称为竞争条件的解决方案?
- 22. Monitor.Wait/Pulse的这种用法是否具有竞争条件?
- 23. Golang - 为什么这种竞争条件发生?
- 24. jQuery远程验证竞争条件
- 25. 避免jQuery的竞争条件
- 26. jQuery的范围或竞争条件
- 27. $。每个.getJSON竞争条件?
- 28. 可能的竞争条件
- 29. 缓存和竞争条件
- 30. 并行Foreach竞争条件
我以前想过这个,但在我的情况下,问题是当用户在最后一个文本框中时,他们不会触发文本框的更改功能。他们直接点击提交按钮(然后触发文本框的更改功能)。如果我禁用提交,他们不会单击按钮或表单上的任何其他位置来触发更改。还有其他建议吗? – tempid 2012-04-03 22:19:15
@enigma。然后在所有更改事件完成时用真正的标志保存。捕获提交事件,如果该标记为false,则防止默认。那个怎么样? – gdoron 2012-04-04 08:29:33
谢谢,这是我最终做的,它似乎工作正常。 – tempid 2012-04-18 17:06:43