有没有办法检查回发是否正在进行中

Is there a way to check if a postback is in progress?

本文关键字:是否 进行中 检查 有没有      更新时间:2023-09-26

在页面上多次单击按钮的情况下,是否有方法使用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
}