基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)


Posted in Javascript onSeptember 02, 2016

相关阅读:

今天测试提了一个bug,发送短信倒计时功能,要求关闭页面也要进行倒计时。这想到了,当年我参与的周杰伦演唱会的先付先抢功能。与之类似,只不过,那个项目的时间都是服务器时间,本人目前有点偷懒,就用客户端的时间了。

一下是完整的代码,只不过在客户端的效率不是很好。

<!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="http://cdn.bootcss.com/jquery/3.1.0/jquery.js"></script>
<script src="http://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
<!--<script src="jquery.min.js"></script>-->
<!-- <script src="jquery.cookie.js"></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>
$(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_down<=0){
obj.removeAttr("disabled"); 
obj.val("免费获取验证码"); 
addCookie("secondsremained","",60);//添加cookie记录,有效时间60s
return;
}
obj.attr("disabled", true); 
obj.val("重新发送(" + count_down + ")"); 
setTimeout(function() { setCoutDown(date,obj) },1000) //每1000毫秒执行一次
} 
//发送验证码时添加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));
}
} 
//校验手机号是否合法
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>

以上所述是小编给大家介绍的基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript库 开发规则
Jan 31 Javascript
file控件选择上传文件确定后触发的js事件是哪个
Mar 17 Javascript
JavaScript动态创建link标签到head里的方法
Dec 22 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
Sep 14 Javascript
BootStrap glyphicons 字体图标实现方法
May 01 Javascript
vue.js中指令Directives详解
Mar 20 Javascript
使用JavaScript实现点击循环切换图片效果
Sep 03 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
layui 监听表格复选框选中值的方法
Aug 15 Javascript
vue项目中axios请求网络接口封装的示例代码
Dec 18 Javascript
原生js实现商品筛选功能
Oct 28 Javascript
eslint+prettier统一代码风格的实现方法
Jul 22 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
Sep 02 #Javascript
node.js中module.exports与exports用法上的区别
Sep 02 #Javascript
AngularJs Scope详解及示例代码
Sep 01 #Javascript
AngularJs Modules详解及示例代码
Sep 01 #Javascript
AngularJs IE Compatibility 兼容老版本IE
Sep 01 #Javascript
AngularJs 国际化(I18n/L10n)详解
Sep 01 #Javascript
AngularJs Forms详解及简单示例
Sep 01 #Javascript
You might like
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
JS控制表格隔行变色
2006/06/26 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
使用jQuery操作HTML的table表格的实例解析
2016/03/13 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
python的继承知识点总结
2018/12/10 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
解决python replace函数替换无效问题
2020/01/18 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
Python json格式化打印实现过程解析
2020/07/21 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
社区安全生产月活动总结
2014/07/05 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
入党自传范文2015
2015/06/26 职场文书
信息技术研修心得体会
2016/01/08 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
PHP中多字节字符串操作实例详解
2021/08/23 PHP
Python制作春联的示例代码
2022/01/22 Python