AJAX防重復提交的辦法總結


  • 如果提交對象為按鈕的話,可以對按鈕設置disabled,此辦法適應於按鈕提交,此種方法簡單粗暴,也是很多人用的辦法,代如下:
    //在按鈕提交之后和AJAX提交之前將按鈕設置為禁用
    $("input[type=submit]").attr('disabled',true)
    $.ajax({
        url:'/post.php'
        data:{a:1,b,1}
        success:function(){
            //在提交成功之后重新啟用該按鈕
            $("input[type=submit]").attr('disabled',false)
        },
        error: function(){
            //即使AJAX失敗也需要將按鈕設置為可用狀態,因為有可能是網絡問題導致的失敗,所以需要將按鈕設置為可用
            $("input[type=submit]").attr('disabled',false)
        }
    })
  • 非按鈕對象提交 
    有時候我們在提交數據的時候沒有from,只有單個表單組件(input、textarea、radio、checkbox等),所以我們就可以將任何一個對象設置提交對象來完成提交,由於普通對象沒有disabled屬性,所以我們需要用其它方式來防止重復提交
    //設置一個對象來控制是否進入AJAX過程
    var post_flag = false; 
    function post(){
        //如果正在提交則直接返回,停止執行
        if(post_flag) return; 
        //標記當前狀態為正在提交狀態
        post_flag = true;
        $.ajax({//進入AJAX提交過程
            url:'/post.php'
            data:{a:1,b,1}
            success:function(){
                post_flag =false; //在提交成功之后將標志標記為可提交狀態
            },
            error: function(){
                post_flag =false; //AJAX失敗也需要將標志標記為可提交狀態
            }
        })
    }

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM