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