基于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 相关文章推荐
ExtJS 2.0 GridPanel基本表格简明教程
May 25 Javascript
javascript基础之查找元素的详细介绍(访问节点)
Jul 05 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
Nov 14 Javascript
常用的JS验证和函数汇总
Dec 23 Javascript
24款热门实用的jQuery插件推荐
Dec 24 Javascript
jQuery实用技巧必备(中)
Nov 03 Javascript
js实现字符串和数组之间相互转换操作
Jan 12 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
解决Angular.Js与Django标签冲突的方案
Dec 20 Javascript
jquery对table做排序操作的实例演示
Aug 10 jQuery
js阻止默认右键的下拉菜单方法
Jan 02 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
Sep 19 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部分常见问题总结
2006/10/09 PHP
基于mysql的论坛(1)
2006/10/09 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
用python批量下载apk
2020/12/29 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
金智子午JAVA面试题
2015/09/04 面试题
Linux如何为某个操作添加别名
2013/03/01 面试题
物流管理专业职业生涯规划书
2014/01/06 职场文书
中学生差生评语
2014/01/30 职场文书
产品生产计划书
2014/05/07 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书