1

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

4

2 回答 2

1

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

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

或者对于 jQuery 1.6+:

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

当更改 ajax 完成时:

$('#submitBtn').attr('disabled', '');//or $('#submitBtn').prop('disabled', false)
于 2012-04-03T22:04:45.037 回答
0

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

于 2012-04-03T22:25:11.780 回答