基于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 相关文章推荐
JavaScript中将一个值转换为字符串的方法分析[译]
Sep 21 Javascript
Jquery颜色选择器ColorPicker实现代码
Nov 14 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
Nov 19 Javascript
详解Document.Cookie
Dec 25 Javascript
Javascript基础_嵌入图像的简单实现
Jun 14 Javascript
JavaScript 对象详细整理总结
Sep 29 Javascript
解析JavaScript数组方法reduce
Dec 12 Javascript
基于JSON数据格式详解
Aug 31 Javascript
js实现录音上传功能
Nov 22 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
Nov 25 Javascript
vue setInterval 定时器失效的解决方式
Jul 30 Javascript
vue实现简单的登录弹出框
Oct 26 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
JS打印彩色菱形的实例代码
2018/08/15 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
vue实现购物车的监听
2020/04/20 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
Python做文本按行去重的实现方法
2016/10/19 Python
python Django 创建应用过程图示详解
2019/07/29 Python
python超时重新请求解决方案
2019/10/21 Python
Python如何生成xml文件
2020/06/04 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
Python爬取梨视频的示例
2021/01/29 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
简历中个人求职的自我评价模板
2013/11/29 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
美术专业自荐信
2014/07/07 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
浅谈MySQL函数
2021/10/05 MySQL
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python