基于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 相关文章推荐
原生js实现给指定元素的后面追加内容
Apr 10 Javascript
JavaScript异步加载浅析
Dec 28 Javascript
Node.js开发之访问Redis数据库教程
Jan 14 Javascript
JavaScript实现自动变换表格边框颜色
May 08 Javascript
js实现跨域访问的三种方法
Dec 09 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
May 29 Javascript
深入理解逻辑表达式的用法 与或非的用法
Jun 06 Javascript
jquery-mobile表单的创建方法详解
Nov 23 Javascript
详解async/await 异步应用的常用场景
May 13 Javascript
angular使用md5,CryptoJS des加密的方法
Jun 03 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 Javascript
微信小程序连续签到7天积分获得功能的示例代码
Aug 20 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
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
PHP静态类
2006/11/25 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
详解PHP中的PDO类
2015/07/06 PHP
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
Python的高级Git库 Gittle
2014/09/22 Python
python中threading超线程用法实例分析
2015/05/16 Python
Python的多维空数组赋值方法
2018/04/13 Python
python实现C4.5决策树算法
2018/08/29 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
比驿:全球酒店比价网
2018/06/20 全球购物
入团者的自我评价分享
2013/12/02 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
八年级语文教学反思
2016/03/03 职场文书