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 相关文章推荐
js一组验证函数
Dec 20 Javascript
ExtJS 2.0 实用简明教程之布局概述
Apr 29 Javascript
javascript 动态生成私有变量访问器
Dec 06 Javascript
JavaScript之自定义类型
May 04 Javascript
jQuery获取注册信息并提示实现代码
Apr 21 Javascript
浅析hasOwnProperty方法的应用
Nov 20 Javascript
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
angularjs中的单元测试实例
Dec 06 Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
Sep 10 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
重置版战役片段
2020/04/09 魔兽争霸
PHP中date()日期函数有关参数整理
2011/07/19 PHP
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
JS请求servlet功能示例
2017/06/01 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
Python访问MySQL封装的常用类实例
2014/11/11 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
python实现顺时针打印矩阵
2019/03/02 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
一套软件开发工程师笔试题
2015/05/18 面试题
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
组织关系转移介绍信
2014/01/16 职场文书
会议邀请书范文
2014/02/02 职场文书
慰问信格式
2015/02/14 职场文书
党校个人总结
2015/03/04 职场文书
导游词之青城山景区
2019/09/27 职场文书
Django程序的优化技巧
2021/04/29 Python