js实现5秒倒计时重新发送短信功能


Posted in Javascript onFebruary 05, 2017

本文实例讲述了js实现倒计时重新发送短信验证码功能的方法。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>js-手机发送短信倒计时</title>
 <style>
  button{
   width: 100px;
   height: 30px;
   border: none;
  }
  input{
   outline: none;
  }
 </style>
 <script> 
  window.onload = function(){
   function $(id){ return document.getElementById(id); } 
   $('btn').onclick = function(){
    clearInterval(timer); //清除计时器 
    var that = this;
    that.disabled = true;
    var count = 5;
    var timer = setInterval(function(){
     if(count>0){
      count--;
      that.innerHTML = "剩余时间"+ count +"s";
     }else{
      that.innerHTML ="重新发送短信";
      that.disabled = false;
      clearInterval(timer); //清除计时器
     }
    },1000);
   }
  }
 </script>
</head>
<body>
 <div class="box">
  <input type="text" id="txt">
  <button id="btn" >点击发送短信</button>
 </div>
</body>
</html>

或者使用setTimeout来模拟,一般情况下,还是推荐使用setTimeout,更安全一些。当使用setInterval(fn,1000)时,程序是间隔1s执行一次,但是每次程序执行是需要3s,那么就要等程序执行完才能执行下一次,即实际间隔时间为(间隔时间和程序执行时间两者的最大值)。而setTimeout(fn,1000),代表的是,延迟1s再执行程序,且仅执行一次。每次程序执行是需要3s,所以实际时间为 1s+3s=4s。可以使用setTimeout递归调用来模拟setInterval。

<script> 
  window.onload = function(){
   function $(id){ return document.getElementById(id); } 
   $('btn').onclick = function(){
    var that = this;
    that.disabled = true;
    var count = 5;
    var timer = setTimeout(fn,1000);
    function fn(){
     count--;
     if(count>0){
      that.innerHTML = "剩余时间"+ count +"s";
      setTimeout(fn,1000); 
     }else{
      that.innerHTML ="重新发送短信";
      that.disabled = false; 
     }
    }
   }
  }
 </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Flash对联广告的关闭按钮讨论
Jan 30 Javascript
JS简单模拟触发按钮点击功能的方法
Nov 30 Javascript
如何提高Dom访问速度
Jan 05 Javascript
Vue监听数据对象变化源码
Mar 09 Javascript
vue.js从安装到搭建过程详解
Mar 17 Javascript
javascript实现多张图片左右无缝滚动效果
Mar 22 Javascript
React和Vue中监听变量变化的方法
Nov 14 Javascript
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
JSON的parse()方法介绍
Jan 31 Javascript
Vue3 源码导读(推荐)
Oct 14 Javascript
基于canvasJS在PHP中制作动态图表
May 30 Javascript
JavaScript中的函数式编程详解
Aug 22 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
Feb 05 #Javascript
js仿小米手机上下滑动效果
Feb 05 #Javascript
简单实现js无缝滚动效果
Feb 05 #Javascript
完美的js图片轮换效果
Feb 05 #Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
Feb 05 #Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
Feb 05 #Javascript
Vue.js学习示例分享
Feb 05 #Javascript
You might like
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
javascript的键盘控制事件说明
2008/04/15 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
Python subprocess模块学习总结
2014/03/13 Python
Python中的生成器和yield详细介绍
2015/01/09 Python
python避免死锁方法实例分析
2015/06/04 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
Python logging设置和logger解析
2019/08/28 Python
超实用的 30 段 Python 案例
2019/10/10 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
《灯光》教学反思
2014/02/08 职场文书
安全责任书范文
2014/08/25 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
Python何绘制带有背景色块的折线图
2022/04/23 Python