有没有办法检查回发是否正在进行中
Is there a way to check if a postback is in progress?
在页面上多次单击按钮的情况下,是否有方法使用javascript/jquery确定回发已经在进行中,并取消提交页面的新尝试?
感谢
您可以通过禁用任何可能导致表单提交的表单元素来避免用户双击。
签出http://greatwebguy.com/programming/dom/prevent-double-submit-with-jquery/例如。
您可以在第一次点击时禁用该按钮,这样您就无法在帖子进行时点击它,并在帖子返回完成后重新启用它。
<script type="text/javascript" language="JavaScript">
var submitted = false;
function SubmitTheForm() {
if(submitted == true) { return; }
document.myform.submit();
document.myform.mybutton.value = 'Thank You!';
document.myform.mybutton.disabled = true;
submitted = true;
}
</script>
<form method="post" action="#">
<input type="submit" onclick=return SubmitTheForm()>
</form>
您可以始终禁用onclick处理程序中的按钮。
$('input[type="submit"]').click(function(e) {
e.preventDefault();
var self = this;
$(self).attr('disabled', 'disabled');
$.post('url',$(self).closest('form').serialize(), function() {
$(self).removeAttr('disabled'); // re-enable after request complete.
});
});
您可以让您的点击事件将点击处理程序中的一个变量设置为true,并且只允许处理程序在值为false时继续。当然,当回调完成时,您必须再次将其设置为false。
if (!processInProgress) {
processInProgress = 1
// start the process
}
相关文章:
- 我可以让我的Ajax调用引起一个“;进行中”;光标
- Angular Apply已经在进行中
- 检查onbeforeunload中的ace编辑器,查看是否进行了更改
- 如何避免$digest正在进行中的错误
- 向按钮发送点击事件时,$apply已在进行中
- $digest已在进行中
- $rootScope:进程操作已在进行中
- 如何调用$scope$apply()仅当它's还没有进行中
- 如何编写 .click 的 JQuery 等效项以进行中键单击
- $digest不久之后$watch定义触发“$apply已经在进行中.“错误
- 如何查找 Angular.js 中已经在进行中的哪一行代码触发器$digest
- $scope.申请?$digest已经在进行中
- 检查是否进行了单选选择
- $scope.$watch 没有调用,但$digest已经在进行中
- 由于“$消化已经在进行中”;
- 正在进行中的 Ajax 请求突然开始返回状态 = 0
- 角度变量未更新,尝试调用$apply导致“;摘要已经在进行中”;错误
- JavaScript中确定数组元素是否正在进行中的最佳方式
- 确定是否完成了2个AJAX进程,即使其余的AJAX进程仍在进行中
- 有没有办法检查回发是否正在进行中