美文网首页
JQuery中阻止按钮连续提交ajax请求

JQuery中阻止按钮连续提交ajax请求

作者: wuchaooooo | 来源:发表于2016-12-16 14:33 被阅读299次

如果我没不加代码限制,一个按钮被连续点按,可以一直触发心的ajax请求,显然这不是我们想要的效果。我们希望的是,这一次点击按钮出发一次ajax后,等这次ajax的回调函数执行完成后,才允许用户进行二次点击并触发ajax请求。

针对上述的请求,我们有下面的几种方式:

  1. 在触发ajax请求后,回调函数执行完成前,我们禁用这个点击按钮,那用户在这段时间内就没办法使用这颗按钮,在回调函数执行后,恢复该按钮。

  2. 在触发ajax请求后,回调函数执行完成前,我们将js函数中的flag置为0,这样子让用户再次点击按钮时,无法触发$.ajax,等到回调函数执行成功,我们将flag重新置为1,这样子$.ajax 就又可以执行了。
    代码如下所示:

<script type="text/javascript">
  $(function(){ 
    var flag=1; 
    function ajaxTest(){ 
      if(flag){ 
        $.ajax({ 
          url: "test.php", 
          type: "POST", 
          data: 456, 
          dataType: 'json', 
          beforeSend: function(){ 
              flag=0 }, 
          success: function (result) { 
            if(result) { 
              console.log(result); 
            } 
            flag = 1; 
          } 
        }); 
      } 
    } 

    $('#btn').bind('click', function() { 
      ajaxTest(); 
    });
  });
</script>

相关文章

网友评论

      本文标题:JQuery中阻止按钮连续提交ajax请求

      本文链接:https://www.haomeiwen.com/subject/phmnmttx.html