1. 程式人生 > >ajax防止多次點選重複提交

ajax防止多次點選重複提交

多次點選提交按鈕的時候重複提交的問題

解決方法很簡單,當點選提交按鈕的時候,把這個提交這個處理函式給解綁掉,請求完成的時候在繫結回來:

1.如果繫結的是有名函做法如下:

function clickHandler(){  
        $(this).unbind('click', clickHandler);  
        $.ajax({  
            url : 'url',  
            dataType : 'json',  
            type : 'post',  
            success : function (data) {  
                if (data.success) {  
                    //提交成功做跳轉處理  
                } else {  
                    //處理失敗,重新繫結點選事件  
                    alert(data.message);  
                    $(self).click(clickHandler);  
                }  
            }  
        });  
    }  
    $('#buntton').click(clickHandler); 

2.當用匿名函式繫結的時候需要用一個變數把arguments.callee存起來,一遍請求完成後重新繫結示例程式碼:

$('#buntton').click(function () {  
    var f = arguments.callee, self = this;  //注:callee 屬性是 arguments 物件的一個成員,他表示對函式物件本身的引用
    $(self).unbind('click', f);  
    $.ajax({  
        url : 'url',  
        dataType : 'json',  
        type : 'post',  
        success : function (data) {  
            if (data.success) {  
               //提交成功做跳轉處理  
            } else {  
                //處理失敗,重新繫結點選事件  
                alert(data.message);  
                $(self).click(f);  
            }  
        }  
    });  
});