基于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或css实现滚动广告的几种方案
Jan 28 Javascript
JS在IE和FireFox之间常用函数的区别小结
Mar 12 Javascript
JavaScript prototype对象的属性说明
Mar 13 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
Nov 28 Javascript
JavaScript函数定义的常见注意事项小结
Sep 16 Javascript
JavaScript中判断整字类型最简洁的实现方法
Nov 08 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
Aug 17 Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
Jan 05 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
Jan 22 Javascript
vue.js全局API之nextTick全面解析
Jul 07 Javascript
详解Nuxt.js 实战集锦
Nov 19 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框架排名
2013/07/04 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
判断浏览器的javascript版本的代码
2010/09/03 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
python基于event实现线程间通信控制
2020/01/13 Python
Python urllib.request对象案例解析
2020/05/11 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
体育学院毕业生自荐信
2013/11/03 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
小学教师培训方案
2014/06/09 职场文书
欢迎领导检查标语
2014/06/27 职场文书
教师批评与自我批评(群众路线)
2014/10/15 职场文书
2015新学期家长寄语
2015/02/26 职场文书
小学数学教学随笔
2015/08/14 职场文书
浅谈Redis中的RDB快照
2021/06/29 Redis
SpringBoot快速入门详解
2021/07/21 Java/Android
Vue监视数据的原理详解
2022/02/24 Vue.js