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 相关文章推荐
学习ExtJS(一) 之基础前提
Oct 07 Javascript
了解jQuery技巧来提高你的代码
Jan 08 Javascript
JS 显示当前日期与时间的代码
Mar 24 Javascript
JQuery学习笔记 nt-child的使用
Jan 17 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
Apr 02 Javascript
使用javascript提交form表单方法汇总
Jun 25 Javascript
JS 清除字符串数组中,重复元素的实现方法
May 24 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
浅谈pc端rem字体设置的问题
Aug 03 Javascript
JS实现数组的增删改查操作示例
Aug 29 Javascript
用POSTMAN发送JSON格式的POST请求示例
Sep 04 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
Oct 26 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字符串中的单引号为双引号的方法
2017/02/16 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
Javascript this指针
2009/07/30 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
python 控制语句
2011/11/03 Python
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
Python函数和模块的使用总结
2019/05/20 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
中学老师的自我评价
2013/11/07 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书
党员入党表决心的话
2014/03/11 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
实训报告范文大全
2014/11/04 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
拙作再改《我的收音机情缘》
2022/04/05 无线电