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中的继承实例代码
Apr 27 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
Jul 22 Javascript
javascript中checkbox使用方法实例演示
Nov 19 Javascript
原生javascript实现解析XML文档与字符串
Mar 01 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
Sep 06 Javascript
three.js快速入门【推荐】
Jan 21 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
angular.extend方法的具体使用
Sep 14 Javascript
Node.js Stream ondata触发时机与顺序的探索
Mar 08 Javascript
前端面试知识点目录一览
Apr 15 Javascript
详解关于React-Router4.0跳转不置顶解决方案
May 10 Javascript
深入了解Hybrid App技术的相关知识
Jul 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
第三章 php操作符与控制结构代码
2011/12/30 PHP
JavaScript 拾漏补遗
2009/12/27 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
node跨域请求方法小结
2017/08/25 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
Python中的Numpy入门教程
2014/04/26 Python
获取Django项目的全部url方法详解
2017/10/26 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
技术经理的自我评价范文
2013/12/03 职场文书
矫正人员思想汇报
2014/01/08 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
个人担保书范文
2014/05/20 职场文书
答谢词范文
2015/01/05 职场文书
实习指导老师意见
2015/06/04 职场文书
导游词之日本富士山
2020/01/06 职场文书
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
python中 Flask Web 表单的使用方法
2022/05/20 Python