基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)


Posted in Javascript onSeptember 02, 2016

相关阅读:

下面一段代码是小编给大家带来的js发送短信验证码后实现倒计时功能,代码简单易懂。

具体代码如下所示:

<!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="//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>

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

Javascript 相关文章推荐
在Windows上安装Node.js模块的方法
Sep 25 Javascript
JS取文本框中最小值的简单实例
Nov 29 Javascript
node.js中的fs.openSync方法使用说明
Dec 17 Javascript
JS控制网页动态生成任意行列数表格的方法
Mar 09 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
Aug 02 Javascript
AngularJs directive详解及示例代码
Sep 01 Javascript
vue2.0多条件搜索组件使用详解
Mar 26 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
Sep 05 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
Sep 22 jQuery
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 Javascript
checkbox在vue中的用法小结
Nov 13 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
vue.js入门教程之计算属性
Sep 01 #Javascript
You might like
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
python实现绘制树枝简单示例
2014/07/24 Python
Python3.2中Print函数用法实例详解
2015/05/19 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
python实现取余操作的简单实例
2020/08/16 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
物流管理专业求职信
2014/05/29 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android