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 相关文章推荐
js常用数组操作方法简明总结
Jun 20 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
Aug 24 Javascript
JS实现点击按钮获取页面高度的方法
Nov 02 Javascript
移动端界面的适配
Jan 11 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
Feb 13 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
Feb 27 Javascript
使用jQuery 操作table 完成单元格合并的实例
Dec 27 jQuery
js生成word中图片处理方法
Jan 06 Javascript
vue弹窗组件使用方法
Apr 28 Javascript
JS Math对象与Math方法实例小结
Jul 05 Javascript
详解Vue 单文件组件的三种写法
Feb 19 Javascript
Vue router安装及使用方法解析
Dec 02 Vue.js
解决微信内置浏览器返回上一页强制刷新问题方法
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
YB217、YB235、YB400浅听
2021/03/02 无线电
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
php集成开发环境详解
2019/09/24 PHP
Prototype Template对象 学习
2009/07/19 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
python分析网页上所有超链接的方法
2015/05/08 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
Django框架验证码用法实例分析
2019/05/10 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
三星印度官网:Samsung印度
2019/08/03 全球购物
亿企通软件测试面试题
2012/04/10 面试题
优秀社区干部事迹材料
2014/02/03 职场文书
健康状况证明模板
2014/10/23 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
Go语言设计模式之结构型模式
2021/06/22 Golang