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 相关文章推荐
JavaScript中的Math.SQRT1_2属性使用简介
Jun 14 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
Jul 14 Javascript
Node.js + Redis Sorted Set实现任务队列
Sep 19 Javascript
bootstrap滚动监控器使用方法解析
Jan 13 Javascript
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 jQuery
Three.js利用顶点绘制立方体的方法详解
Sep 27 Javascript
vscode下的vue文件格式化问题
Nov 28 Javascript
vue实现在线学生录入系统
May 30 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
Nov 05 Javascript
Map与WeakMap类型在JavaScript中的使用详解
Nov 18 Javascript
JavaScript实现HTML导航栏下拉菜单
Nov 25 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
Jan 25 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检查页面是否被百度收录
2015/10/28 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
vue小白入门教程
2018/04/02 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
python数据结构之二叉树的建立实例
2014/04/29 Python
Python不规范的日期字符串处理类
2014/06/10 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
python梯度下降法的简单示例
2018/08/31 Python
Python字符串对象实现原理详解
2019/07/01 Python
python算法题 链表反转详解
2019/07/02 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
医学实习生自我鉴定
2013/12/12 职场文书
人力资源部培训专员岗位职责
2014/01/02 职场文书
材料会计岗位职责
2014/03/06 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
元宵节晚会主持词
2015/07/01 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python
Python中的变量与常量
2021/11/11 Python