前端手机发送验证码在发送成功后120秒内禁止重复发送

前端手机发送验证码在发送成功后120秒内禁止重复发送,基本思路都js判定的.而验证码是从后台返回的,首先一个js点击事件,点击之后动态把一个120秒倒计时计时器触发,并动态加载到点击按钮上,并且移除点击事件,当倒计时到0时移除把获取验证码按钮重新加载出来。并添加上点击事件。在这里需要着重注意的是监听事件的添加和移除一节计时器的把握,

js如下:

//手机获取验证码开始
$(function(){
var myFunction;
var InterValObj; //timer变量,控制时间
var count = 120; //间隔函数,1秒执行
var curCount;//当前剩余秒数
var hqdate;//获取验证码的时间
var tjdate;//发送验证码时间
var code;
var DDmyVcode = '';//验证码
var myphone;//手机号
$('#DDqrcode').bind('touchend',myFunction = function(){
// 倒计时
curCount = count;
var yzphone = /^1[3458]\d{9}$/;
myphone = $('#DDphone').val();
if(myphone == ''){
alert("对不起,请输入手机号");
}else if(!yzphone.exec(myphone)){
alert("请输入正确手机号");
}else{
// 如果手机号不为空启动定时器
$('#DDqrcode').unbind('touchend',myFunction);
InterValObj = setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次

$.ajax({
url:path + "/api/v301/user/getSmsCode",
data:{
"phone":myphone,
"type":'regist'
},
async:false,
type:"get",
success:function(data){
console.log(data)
try{
code = data.data.vcode;

}catch(e){
//TODO handle the exception
if(code != null){
InterValObj = setInterval(SetRemainTime, 1000)
}
else if(code == null){
alert("对不起,该用户已存在");
myphone = '';
clearInterval(InterValObj)
$('#DDqrcode').bind('touchend',myFunction);
}
}


// 获取验证码时间
// hqdate = (new Date(stratCard.replace(/-/g,"/"))).getTime();
// console.log(hqdate);
},error:function(msg){
console.log(msg);
}
});


}

});

function SetRemainTime(){
// console.log("111")
if (curCount == 0) {
clearInterval(InterValObj);//停止计时器
$('#DDqrcode').bind('touchend',myFunction);//启用按钮
$("#DDqrcode").text("重新发送");
DDmyVcode = ''; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
}else{
curCount--;
$("#DDqrcode").text(curCount + "s");
}
}

//手机验证码结束

在这个程序员苦逼的年代里我们需要抱团取暖

转载于:https://www.cnblogs.com/wenchao666/p/7656973.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值