ajax防止多次点击重复提交

以前在做ajax应用的时候遇到过,多次点击提交按钮的时候重复提交的问题

解决方法很简单,当点击提交按钮的时候,把这个提交这个处理函数给解绑掉,请求完成的时候在绑定回来,如果绑定的是有名函做法相对简单类似如下代码:

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


当用匿名函数绑定的时候需要用一个变量把arguments.callee存起来,一遍请求完成后重新绑定示例代码如下:


$('#buntton').click(function () {
    var fn = arguments.callee,
        self = this;
    $(self).unbind('click', fn);
    $.ajax({
        url : 'url',
        dataType : 'json',
        type : 'post',
        success : function (data) {
            if (data.success) {
               //提交成功做跳转处理
            } else {
                //处理失败,重新绑定点击事件
                alert(data.message);
                $(self).click(fn);
            }
        }
    });
});

注:callee 属性是 arguments 对象的一个成员,他表示对函数对象本身的引用


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值