jquery - 防止这种竞争条件

时间:2012-04-03 22:00:36

标签: jquery

我在页面上有一堆文本框和一个提交按钮。我已连接文本框的TextChanged事件以执行服务器端方法。用户在文本框中输入值,选项卡输出到下一个文本框(触发textchanged事件),最后单击调用另一个服务器端方法的提交按钮。所有功能都是异步的。只有在textchange方法完成后才需要执行submit方法,因为它们共享相同的数据。问题是有时textchange方法需要稍长才能完成,并且在textchange函数完成之前触发submit方法。我该如何防止这种情况?如何锁定/排队功能?

2 个答案:

答案 0 :(得分:1)

不要锁定或排队任何东西!只需禁用提交按钮,直到更改事件+ ajax完成。

$('#submitBtn').attr('disabled', 'disabled');

或者对于jQuery 1.6 +:

$('#submitBtn').prop('disabled', true);

当变更ajax结束时:

$('#submitBtn').attr('disabled', '');//or $('#submitBtn').prop('disabled', false)

答案 1 :(得分:0)

看看Ben Alman的jQuery Queuing插件http://benalman.com/projects/jquery-message-queuing-plugin/,它可能就是你需要的声音。

相关问题