基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
相关阅读:
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
下面一段代码是小编给大家带来的js发送短信验证码后实现倒计时功能,代码简单易懂。
具体代码如下所示:
<!doctypehtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metaname="Generator"content="EditPlus®">
<metaname="Author"content="">
<metaname="Keywords"content="">
<metaname="Description"content="">
<title>Document</title>
<scriptsrc="http://cdn.bootcss.com/jquery/3.1.0/jquery.js"></script>
<scriptsrc="http://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
<!--<scriptsrc="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>-->
</head>
<body>
<inputid="phonenum"type="text"value="18518181818"/>
<inputid="second"type="button"value="免费获取验证码"/>
</body>
<script>
//发送验证码时添加cookie
functionaddCookie(name,value,expiresHours){
//判断是否设置过期时间,0代表关闭浏览器时失效
if(expiresHours>0){
vardate=newDate();
date.setTime(date.getTime()+expiresHours*1000);
$.cookie(name,escape(value),{expires:date});
}else{
$.cookie(name,escape(value));
}
}
//修改cookie的值
functioneditCookie(name,value,expiresHours){
if(expiresHours>0){
vardate=newDate();
date.setTime(date.getTime()+expiresHours*1000);//单位是毫秒
$.cookie(name,escape(value),{expires:date});
}else{
$.cookie(name,escape(value));
}
}
//根据名字获取cookie的值
functiongetCookieValue(name){
return$.cookie(name);
}
$(function(){
$("#second").click(function(){
sendCode($("#second"));
});
v=getCookieValue("secondsremained");//获取cookie值
if(v>0){
settime($("#second"));//开始倒计时
}
})
//发送验证码
functionsendCode(obj){
varphonenum=$("#phonenum").val();
varresult=isPhoneNum();
if(result){
//doPostBack('${base}/login/getCode.htm',backFunc1,{"phonenum":phonenum});
addCookie("secondsremained",60,60);//添加cookie记录,有效时间60s
settime(obj);//开始倒计时
}
}
//开始倒计时
varcountdown;
functionsettime(obj){
countdown=getCookieValue("secondsremained");
if(countdown==0){
obj.removeAttr("disabled");
obj.val("免费获取验证码");
return;
}else{
obj.attr("disabled",true);
obj.val("重新发送("+countdown+")");
countdown--;
editCookie("secondsremained",countdown,countdown+1);
}
setTimeout(function(){settime(obj)},1000)//每1000毫秒执行一次
}
//校验手机号是否合法
functionisPhoneNum(){
varphonenum=$("#phonenum").val();
varmyreg=/^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
if(!myreg.test(phonenum)){
alert('请输入有效的手机号码!');
returnfalse;
}else{
returntrue;
}
}
</script>
</html>
以上所述是小编给大家介绍的基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!