基于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 相关文章推荐
jQuery ui插件的使用方法代码实例
May 08 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
Dec 27 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
Feb 11 Javascript
深入浅析Node.js 事件循环
Dec 20 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
Jan 08 Javascript
AngularJS 模块化详解及实例代码
Sep 14 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
Jan 20 Javascript
JavaScript数据结构之数组的表示方法示例
Apr 12 Javascript
JS实现二维数组元素的排列组合运算简单示例
Jan 28 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
Mar 26 Javascript
ES2020系列之空值合并运算符 '??'
Jul 22 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
php+highchats生成动态统计图
2014/05/21 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
php对象工厂类完整示例
2018/08/09 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
Vue异步组件处理路由组件加载状态的解决方案
2018/09/07 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
基于Python的身份证号码自动生成程序
2014/08/15 Python
Python itertools模块详解
2015/05/09 Python
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
python删除过期log文件操作实例解析
2018/01/31 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
python实现电脑自动关机
2018/06/20 Python
详解django中使用定时任务的方法
2018/09/27 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
python判断正负数方式
2020/06/03 Python
Python __slots__的使用方法
2020/11/15 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
法国家具及室内配件店:home24
2017/01/21 全球购物
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
办公室经理岗位职责
2014/01/01 职场文书
信息管理专业自荐书
2014/06/05 职场文书
教师节校长致辞
2015/07/31 职场文书
决心书格式范文
2015/09/23 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
Nginx配置使用详解
2022/07/07 Servers