JS 实现发送短信验证码的“59秒后重新发送验证短信”功能


Posted in Javascript onAugust 23, 2019

倒计时——从10倒数到0,点击按钮会还原倒计时

<body>
  <!-- 将textvalue值设为10,从10倒数 -->
  <input type="text" value="10" id="txt">
  <input type="button" value="重新开始" id="btn">
</body>
<script>
  var oT = document.getElementById("txt");
  var oB = document.getElementById("btn");
  var timer;
  //封装一个开始倒数的函数
  function start(){
    //开启计时器,每秒text框中的数值自减1
    timer = setInterval(function(){
      oT.value--;
      //当text框中的数值为0时,停止计时器
      if(oT.value<=0){
        clearInterval(timer);
      }
    },1000)
  }
  //封装一个清楚延时器的函数
  function stop(){
    clearTimeout(timer);
  }
  //当网页加载完毕时的行为如下
  window.onload = function(){
    //只要text里面的数值还未到0,则不停地以每秒减一的速度进行着
    if(oT.value>0){
      start();
    //一旦清零,就停止
    }else{
      stop();
    }
  }
  //当点击按钮时的行为
  oB.onclick = function(){
    //此处要设清除计时器,否则中断text倒数后的重新倒数将会加速,甚至会递减到负值
    clearInterval(timer);
    //点击按钮后,无论text中的数值时多少,都变为10
    oT.value = 10;
    //重复上面函数的行为
    if(oT.value>0){
      start();
    }else{
      stop();
    }
  }
</script>

知识点扩展:

 数字字母混合的4位验证码

不管是在app注册、登录里,还是在网页注册里,都会看到验证码;那这个验证码要怎么实现呢?通过js有两种方法可以达到这样的效果,下面代码奉上哦!

方法一:这个方法比较好理解,首先定义一个数组,将会产生的字母,数值都放进去;有4位就循环4次,每循环一次产生一个随机结果,将每次的结果累加起来存入想要放的位置。

var arr=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
  //产生4位验证码
  for(var i=0;i<4;i++){
    pos=parseInt(Math.random()*(arr.length-1));
    Ophoto.value+=arr[pos];
  }
  // 验证用户输入的验证码是否正确
  Ocode.onblur = function () {
    if(Ocode.value!=Ophoto.value){
      alert("验证码输入错误");
    }
  }

方法二:这个方法也挺好理解的,产生一个随机字符库,然后开始对随机库(str)里面的字符所对应的下标进行随机,然后将随机而来的下标所对应的字符累加给另一个字符串即可。

function randomStr(){
    // 产生库
    var str = "";
    var str1 = "";
    for (var i = 0; i < 4; i++) {
      var a = random(0, 9);
      var b = String.fromCharCode(random(65, 90));
      var c = String.fromCharCode(random(97, 122));
      str1 = str1 + a + b + c;
    }
    // 开始真正的随机
    for (var i = 0; i < 4; i++) {
      str += str1[random(0, str1.length - 1)]
    }
    return str;
  }
  Ophoto.value = randomStr();
  Ocode.onblur = function () {
    if (Ocode.value != Ophoto.value) {
      alert("验证码输入错误");
    }
  }
  function random(max, min) {
    return Math.round(Math.random() * (max - min) + min);
  }

以上两种方法都可得到随机数字字母混合的4位验证码,可以都尝试着理解下,然后去敲敲看。若有其他方法,会更新哒!

总结

以上所述是小编给大家介绍的JS 实现发送短信验证码的“59秒后重新发送验证短信”功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
javascript下arguments,caller,callee,call,apply示例及理解
Dec 24 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
原生javaScript做得动态表格(注释写的很清楚)
Dec 29 Javascript
JS运动框架之分享侧边栏动画实例
Mar 03 Javascript
javascript中的altKey 和 Event属性大全
Nov 06 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
Jul 22 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
Sep 03 Javascript
React应用中使用Bootstrap的方法
Aug 15 Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
Aug 20 Javascript
JS实现横向跑马灯效果代码
Apr 20 Javascript
javascript对象3个属性特征
Nov 17 Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 #Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
Aug 23 #Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
Aug 23 #Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
Aug 23 #Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
Aug 23 #Javascript
微信小程序 授权登录详解(附完整源码)
Aug 23 #Javascript
vue使用微信JS-SDK实现分享功能
Aug 23 #Javascript
You might like
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
php7性能提升的原因详解
2019/10/13 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
javascript操作css属性
2013/12/30 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
python中执行shell命令的几个方法小结
2014/09/18 Python
整理Python中的赋值运算符
2015/05/13 Python
全面理解Python中self的用法
2016/06/04 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
Python面向对象基础入门之编码细节与注意事项
2018/12/11 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
python raise的基本使用
2020/09/10 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
二年级班级文化建设方案
2014/05/10 职场文书
高中教师考核方案
2014/05/18 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
经济贸易系求职信
2014/08/04 职场文书
企业财务人员岗位职责
2015/04/14 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
电影红河谷观后感
2015/06/11 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
python爬虫--selenium模块
2021/03/31 Python