JQUERY 防止快速双击重复提交

举报
隔壁老汪 发表于 2022/06/23 23:23:05 2022/06/23
【摘要】 最近项目发现用户注册了两次,相差时间ms,肯定是前端页面重复提交了,于是解决如下: 一、one() 方法 定义和用法 one() 方法为被选元素附加一个或多个事件处理程序,并规定当事件发生时运行的函数。 当使用 one() 方法时,每个元素只能运行一次事件处理器函数。 语法 $(selector).one(event...

最近项目发现用户注册了两次,相差时间ms,肯定是前端页面重复提交了,于是解决如下:

一、one() 方法

定义和用法 
one() 方法为被选元素附加一个或多个事件处理程序,并规定当事件发生时运行的函数。 
当使用 one() 方法时,每个元素只能运行一次事件处理器函数。

语法

$(selector).one(event,data,function);
 
  • 1

使用示例


  
  1. $('.register_btn').unbind('click').one('click', function() {
  2.             userRegister();
  3.             $(this).unbind('click');  
  4.         });
  • 1
  • 2
  • 3

这种方式有个弊端,只允许点一次,但实际要求是注册点一次若异常还是能点的。

二、unbind()方法

在按钮点击的时候移除绑定事件。 
使用示例


  
  1. $('.register_btn').unbind('click').bind('click', function() {
  2.             userRegister();
  3.             $(this).unbind('click');  
  4.         });
ajax请求后需要重新绑定事件
  1. success: function(json) {
  2.     var responseText = json.responseText;
  3.     var text = jQuery.parseJSON(responseText);
  4.     var body = text['body'];
  5.     var respCode = body['respCode'];
  6.     var respDesc = body['respDesc'];
  7.     if("0" == respCode){//成功
  8.     alert("注册成功!");
  9.     toCasLogin();
  10.     }else if("1" == respCode){
  11.     alert("系统错误,请重试!");
  12.     }else if("2" == respCode){
  13.     alert(respDesc);
  14.     }
  15.     changeVerifyCode();
  16.    
  17.     // 重新绑定事件
  18.     $('.register_btn').unbind('click').bind('click', function() {
  19.             userRegister();
  20.             $(this).unbind('click');  
  21.         });
  22.     },
  23.     error: function(json) {
  24.     throw new Error("Get Service Data Error!");
  25.     }

文章来源: blog.csdn.net,作者:隔壁老瓦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wxb880114/article/details/81035626

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。