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实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
Apr 20 Javascript
Prototype Object对象 学习
Jul 12 Javascript
js类的静态属性和实例属性的理解
Oct 01 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
Apr 16 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
May 28 Javascript
JS中getYear()和getFullYear()区别分析
Jul 04 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
Nov 09 Javascript
通过扫描二维码打开app的实现代码
Nov 10 Javascript
vue中el-upload上传图片到七牛的示例代码
Oct 19 Javascript
Vue组件通信入门之Provide和Inject机制
Dec 29 Javascript
es5 类与es6中class的区别小结
Nov 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
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
python reduce 函数使用详解
2017/12/05 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
计算机本科生自荐信
2013/10/15 职场文书
电厂厂长岗位职责
2014/01/02 职场文书
对祖国的寄语大全
2014/04/11 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
社区端午节活动总结
2015/02/11 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB