基于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 相关文章推荐
ext checkboxgroup 回填数据解决
Aug 21 Javascript
javascript 事件绑定问题
Jan 01 Javascript
js通过元素class名字获取元素集合的具体实现
Jan 06 Javascript
8个实用的jQuery技巧
Mar 04 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
Aug 18 Javascript
js实现简单鼠标跟随效果的方法
Apr 10 Javascript
js实现简单折叠、展开菜单的方法
Aug 28 Javascript
基于jQuery实现搜索关键字自动匹配功能
Mar 26 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
Jun 06 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
Apr 20 Javascript
vue添加axios,并且指定baseurl的方法
Sep 19 Javascript
vue中的v-if和v-show的区别详解
Sep 01 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
重置版游戏视频
2020/04/09 魔兽争霸
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
vue项目中导入swiper插件的方法
2018/01/30 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
python查看FTP是否能连接成功的方法
2015/07/30 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
python简单实现获取当前时间
2016/08/27 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
python去掉空白行的多种实现代码
2018/03/19 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
Python的collections模块真的很好用
2021/03/01 Python
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
法学专业个人求职信
2013/09/26 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
工会优秀工作者事迹
2014/08/17 职场文书