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 相关文章推荐
jQuery元素的隐藏与显示实例
Jan 20 Javascript
JavaScript实现在页面间传值的方法
Apr 07 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
Jan 08 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
Feb 21 Javascript
微信小程序 数据绑定及运算的简单实例
Sep 20 Javascript
基于vue.js快速搭建图书管理平台
Oct 29 Javascript
angularjs实现柱状图动态加载的示例
Dec 11 Javascript
Vue自定义指令实现checkbox全选功能的方法
Feb 28 Javascript
JS 数组随机洗牌的实例代码
Sep 12 Javascript
es6中reduce的基本使用方法
Sep 10 Javascript
解决layui laydate 时间控件一闪而过的问题
Sep 28 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中copy on write写时复制机制介绍
2014/05/13 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
用JavaScript调用WebService的示例
2008/04/07 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
wxpython学习笔记(推荐查看)
2014/06/09 Python
python搜索指定目录的方法
2015/04/29 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
历史专业毕业生的自我鉴定
2013/11/15 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
客户答谢会致辞
2015/01/20 职场文书
2015年化验室工作总结
2015/04/23 职场文书
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang