基于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 相关文章推荐
如何判断图片地址是否失效
Feb 02 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
Jul 26 Javascript
jQuery随便控制任意div隐藏的方法
Jun 28 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
Mar 18 Javascript
JavaScript中的Math.LOG2E属性使用详解
Jun 14 Javascript
微信小程序HTTP接口请求封装的实现
Feb 21 Javascript
JS随机密码生成算法
Sep 23 Javascript
小程序点餐界面添加购物车左右摆动动画
Sep 23 Javascript
详解Vue2的diff算法
Jan 06 Vue.js
如何在现代JavaScript中编写异步任务
Jan 31 Javascript
vue常用高阶函数及综合实例
Feb 25 Vue.js
基于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学习笔记之面向对象编程
2012/12/29 PHP
php实现mysql数据库操作类分享
2014/02/14 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
获取body标签的两种方法
2011/10/13 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
Python 序列的方法总结
2016/10/18 Python
python 数据的清理行为实例详解
2017/07/12 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
目前最全的python的就业方向
2018/06/05 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
wxPython实现画图板
2020/08/27 Python
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
保送生自荐信范文
2013/10/06 职场文书
网页设计个人找工作求职信
2013/11/28 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
商场消防安全责任书
2014/07/29 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
无犯罪记录证明
2014/09/19 职场文书
员工年度工作总结2015
2015/05/18 职场文书