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);  
            }  
        }  
    });  
}); 


你可能感兴趣的:(JavaScript)