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学习笔记[1] jQuery中的DOM操作
Dec 03 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
Aug 06 Javascript
jQuery取得select选择的文本与值的示例
Dec 09 Javascript
js for循环倒序输出数组元素的实例
Mar 01 Javascript
angularjs封装$http为factory的方法
May 18 Javascript
Vue计算属性的使用
Aug 04 Javascript
Vue 2.0入门基础知识之内部指令详解
Oct 15 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
May 08 Javascript
vue给对象动态添加属性和值的实例
Sep 09 Javascript
详解datagrid使用方法(重要)
Nov 06 Javascript
微信小程序实现登录注册功能
Dec 29 Javascript
JS实现百度搜索框
Feb 25 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中上传大体积文件时需要的设置
2006/10/09 PHP
调整PHP的性能
2013/10/30 PHP
php调用KyotoTycoon简单实例
2015/04/02 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
php查询内存信息操作示例
2019/05/09 PHP
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
node内置调试方法总结
2018/02/22 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
对dataframe进行列相加,行相加的实例
2018/06/08 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
Etam德国:内衣精品店
2019/08/25 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
《郑和远航》教学反思
2014/04/16 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
2014年语文教研组工作总结
2014/12/06 职场文书
政审证明材料
2015/06/19 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers
Python 视频画质增强
2022/04/28 Python