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

时间:2011-06-21 07:51:32

标签: javascript jquery

如果在页面上多次单击按钮 - 有没有办法找出使用javascript / jquery回发已在进行中并取消新提交页面的尝试?

由于

4 个答案:

答案 0 :(得分:0)

您可以在第一次单击时禁用该按钮,以便在帖子正在进行时无法单击该按钮,并在回发完成后重新启用它。

 <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>

答案 1 :(得分:0)

您可以通过禁用任何可能导致表单提交的表单元素来避免用户双击。

结帐http://greatwebguy.com/programming/dom/prevent-double-submit-with-jquery/以获取示例。

答案 2 :(得分:0)

您可以随时禁用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. 
   });
});

答案 3 :(得分:-1)

您可以将click事件中的click事件设置为true,并且只允许处理程序在值为false时继续执行。当然,当你的回调结束时,你必须再次将它设置为假。

if (!processInProgress) {
  processInProgress = 1
  // start the process
}