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技巧
Dec 06 Javascript
自定义百度分享的分享按钮
Mar 18 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
Apr 30 Javascript
jQuery动态生成Bootstrap表格
Nov 01 Javascript
angular双向绑定模拟探索
Dec 26 Javascript
js实现下拉菜单效果
Mar 01 Javascript
js经验分享 JavaScript反调试技巧
Mar 10 Javascript
echarts设置图例颜色和地图底色的方法实例
Aug 01 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
angular5 子组件监听父组件传入值的变化方法
Sep 30 Javascript
微信小程序实现星级评价效果
Dec 28 Javascript
Vue项目开发常见问题和解决方案总结
Sep 11 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文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
php使用curl存储cookie的示例
2014/03/31 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
python常见排序算法基础教程
2017/04/13 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
Python中new方法的详解
2019/01/15 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
python时间time模块处理大全
2020/10/25 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
说出一些常用的类,包,接口
2014/09/22 面试题
如何进行Linux分区优化
2013/02/12 面试题
Servlet的生命周期
2013/08/25 面试题
十八大感想感言
2014/02/10 职场文书
工程服务质量承诺书
2015/04/29 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
利用Python多线程实现图片下载器
2022/03/25 Python