博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)...
阅读量:4927 次
发布时间:2019-06-11

本文共 2277 字,大约阅读时间需要 7 分钟。

<!doctype html>
<html lang=
"en"
>
<head>
<meta charset=
"UTF-8"
>
<meta name=
"Generator"
content=
"EditPlus®"
>
<meta name=
"Author"
content=
""
>
<meta name=
"Keywords"
content=
""
>
<meta name=
"Description"
content=
""
>
<title>Document</title>
<script src=
""
></script>
<script src=
""
></script>
<!-- <script src=
"//cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"
></script>-->
</head>
<body>
<input id=
"phonenum"
type=
"text"
value=
"18518181818"
/>
<input id=
"second"
type=
"button"
value=
"免费获取验证码"
/>
</body>
<script>
//发送验证码时添加cookie
function
addCookie(name,value,expiresHours){
//判断是否设置过期时间,0代表关闭浏览器时失效
if
(expiresHours>0){
var
date=
new
Date();
date.setTime(date.getTime()+expiresHours*1000);
$.cookie(name, escape(value), {expires: date});
}
else
{
$.cookie(name, escape(value));
}
}
//修改cookie的值
function
editCookie(name,value,expiresHours){
if
(expiresHours>0){
var
date=
new
Date();
date.setTime(date.getTime()+expiresHours*1000);
//单位是毫秒
$.cookie(name, escape(value), {expires: date});
}
else
{
$.cookie(name, escape(value));
}
}
//根据名字获取cookie的值
function
getCookieValue(name){
return
$.cookie(name);
}
$(
function
(){
$(
"#second"
).click(
function
(){
sendCode($(
"#second"
));
});
v = getCookieValue(
"secondsremained"
);
//获取cookie值
if
(v>0){
settime($(
"#second"
));
//开始倒计时
}
})
//发送验证码
function
sendCode(obj){
var
phonenum = $(
"#phonenum"
).val();
var
result = isPhoneNum();
if
(result){
// doPostBack('${base}/login/getCode.htm',backFunc1,{"phonenum":phonenum});
addCookie(
"secondsremained"
,60,60);
//添加cookie记录,有效时间60s
settime(obj);
//开始倒计时
}
}
//开始倒计时
var
countdown;
function
settime(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毫秒执行一次
}
//校验手机号是否合法
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
;
}
}
</script>
</html>

转载于:https://www.cnblogs.com/sjqq/p/6361509.html

你可能感兴趣的文章
leetcode 9. Palindrome Number
查看>>
2018/1/9 redis学习笔记(一)
查看>>
协程 - 单线程并发--day36
查看>>
oracle存储过程遇到的问题
查看>>
如何使用WPS从正文开始页码为1,而不是从目录开始?
查看>>
C# Select
查看>>
【转】关于Scapy
查看>>
关于AES加密,以及各种分组加密
查看>>
修改 Win10 默认输入法为英语(美式键盘)
查看>>
IE浏览器使用VLC实时显示视频(海康、大华)
查看>>
计算机网络介绍,TCP协议,Socket网络编程
查看>>
移动端页面输入法挡住input输入框的解决方法
查看>>
操作系统--进程
查看>>
LWP::UserAgent - Web user agent class Web 用户agent 类:
查看>>
zookeeper 手动T掉已挂节点
查看>>
apache commons io入门
查看>>
在OS X 10.9配置WebDAV服务器联合NSURLSessionUploadTask实现文件上传
查看>>
C语言位运算
查看>>
OSI七层协议模型、TCP/IP四层模型学习笔记
查看>>
windown vs2012 编译ffplay
查看>>