基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
今天测试提了一个bug,发送短信倒计时功能,要求关闭页面也要进行倒计时。这想到了,当年我参与的周杰伦演唱会的先付先抢功能。与之类似,只不过,那个项目的时间都是服务器时间,本人目前有点偷懒,就用客户端的时间了。
一下是完整的代码,只不过在客户端的效率不是很好。
Document $(function(){ $("#second").click(function (){ sendCode($("#second")); }); checkCountdown(); }) //校验打开页面的时候是否要继续倒计时 function checkCountdown(){ var secondsremained = $.cookie("secondsremained"); if(secondsremained){ var date = new Date(unescape(secondsremained)); setCoutDown(date,$("#second")); } } //发送验证码 function sendCode(obj){ var phonenum = $("#phonenum").val(); var result = isPhoneNum(); if(result){ //加载ajax 获取验证码的方法 // doPostBack('${base}/login/getCode.htm',backFunc1,{"phonenum":phonenum}); var date = new Date(); addCookie("secondsremained",date.toGMTString(),60);//添加cookie记录,有效时间60s setCoutDown(date,obj); } } var nowDate = null; var time_difference = 0; var count_down = 0; function setCoutDown(date,obj) { nowDate = new Date(); time_difference = ((nowDate- date)/1000).toFixed(0); count_down = 60 - time_difference; console.log(count_down); if(count_down0){ var date=new Date(); date.setTime(date.getTime()+expiresHours*1000); $.cookie(name, escape(value), {expires: date}); }else{ $.cookie(name, escape(value)); } } //校验手机号是否合法 function isPhoneNum(){ var phonenum = $("#phonenum").val(); var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+d{8})$/; if(!myreg.test(phonenum)){ alert('请输入有效的手机号码!'); return false; }else{ return true; } }
以上所述是小编给大家介绍的基于实现发送短信验证码后的倒计时功能(无视页面关闭),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
发表回复