基于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学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
Apr 12 Javascript
Notify - 基于jquery的消息通知插件
Oct 18 Javascript
Json序列化和反序列化方法解析
Dec 19 Javascript
jQuery实现网页抖动的菜单抖动效果
Aug 07 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
如何利用Promises编写更优雅的JavaScript代码
May 17 Javascript
javascript中的面向对象
Mar 30 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
Jul 27 Javascript
js使用formData实现批量上传
Mar 27 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
Sep 11 Javascript
JS apply用法总结和使用场景实例分析
Mar 14 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代码
2008/09/10 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
JS回调函数深入理解
2019/10/16 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
javascript实现文字跑马灯效果
2020/06/18 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
[03:12]完美世界DOTA2联赛PWL DAY6集锦
2020/11/05 DOTA
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
Python如何实现的二分查找算法
2020/05/27 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
用Python 执行cmd命令
2020/12/18 Python
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
应聘收银员个人的求职信
2013/11/30 职场文书
义诊活动总结
2015/02/04 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
成事在人观后感
2015/06/16 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android
一行Python命令实现批量加水印
2022/04/07 Python