如何防止ajax调用两次触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止ajax调用两次触发相关的知识,希望对你有一定的参考价值。

我有一个ajax调用,当click发生document事件时被触发。 ajax调用似乎正在执行twice,我不确定为什么会发生这种情况。

这是在mysql 5php 5Apache 2上运行的

我的问题是:如何防止ajax调用触发twice

这是我的JQuery代码:

$(document).on('click', '.edit_quyet_dinh', function(){  
    var ma_quyet_dinh = $(this).attr("id");
    var ma_cong_trinh = $(this).attr("data-id");
    $.ajax({  
        url:"fetch_quyet_dinh.php",  
        method:"POST",  
        data:{ma_quyet_dinh:ma_quyet_dinh,ma_cong_trinh:ma_cong_trinh},  
        dataType:"json",  
        success:function(data){  
            $('#ten_quyet_dinh').val(data.ten_cong_trinh);  
            $('#shct_qd').val(data.so_hieu);  
            $('#so_quyet_dinh').val(data.so_quyet_dinh);  
            $('#ngay_duyet').val(data.ngay_duyet);  
            $('#ma_quyet_dinh').val(data.ma_quyet_dinh);  
            $('#insert_qd').val("Update");  
            $('#add_quyet_dinh').modal('show');  
        }  
    });  
});     
答案

您必须使用此代码:

$(document).on('click', '.edit_quyet_dinh', function(event){  
   event.preventDefault();
   event.stopPropagation();

   // other codes
});  

这个方法停止了两次调用jquery事件的功能。

stopPropagation阻止事件冒泡事件链。

preventDefault会阻止浏览器对该事件执行的默认操作。

以上是关于如何防止ajax调用两次触发的主要内容,如果未能解决你的问题,请参考以下文章

如何在每次 ajax 调用之前和之后触发某些操作

从输入中删除字符时,如何防止 keyup 事件触发两次?

jQuery.ajax 从 dateRangeSlider 中的 userValuesChanged 调用了两次

发出 POST 请求时如何防止触发 CORS? [复制]

如何防止片段在活动重新创建时触发 onCreate onCreateView

防止重复发送ajax请求