Ajax 防止表单重复提交

我们知道很多种防止表单重复提交的方法:

总结开来一共有以下三种:

1、前后台结合来解决问题(Token)

每次提交前段的Token值与后端的Token值互相比较,相等则进行运算逻辑,不相等则返回 (现在主流的框架都支持Token验证)

2、按钮置灰的方式来防止重复提交

如果提交对象为按钮的话,可以对按钮设置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)  
    }  
}) 

3、设置 js (flag)对象来控制是否进入提交流程 ,非按钮提交时由于没有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失败也需要将标志标记为可提交状态  
        }  
    })  


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值