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图表动画插件Highcharts Examples
Apr 16 Javascript
JavaScript优化专题之Loading and Execution加载和运行
Jan 20 Javascript
浅谈jQuery为哪般去掉了浏览器检测
Aug 29 Javascript
微信小程序 setData使用方法及常用错误解决办法
May 11 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
vue.js的computed,filter,get,set的用法及区别详解
Mar 08 Javascript
React 组件间的通信示例
Jun 14 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
Nov 01 Javascript
微信小程序实现卡片左右滑动效果的示例代码
May 01 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
Aug 12 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
Sep 04 Javascript
js利用iframe实现选项卡效果
Aug 09 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
一个显示天气预报的程序
2006/10/09 PHP
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
php控制文件下载速度的方法
2015/03/24 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
简述php环境搭建与配置
2016/12/05 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
vue穿梭框实现上下移动
2021/01/29 Vue.js
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
使用C++扩展Python的功能详解
2018/01/12 Python
使用Python进行目录的对比方法
2018/11/01 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
新郎婚宴答谢词
2014/01/19 职场文书
文明社区申报材料
2014/08/21 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python