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来定义类的规范小结
Nov 19 Javascript
获取鼠标在div中的相对位置的实现代码
Dec 30 Javascript
JavaScript中Function详解
Feb 27 Javascript
javascript结合canvas实现图片旋转效果
May 03 Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 Javascript
javascript html实现网页版日历代码
Mar 08 Javascript
JavaScript获取客户端IP的方法(新方法)
Mar 11 Javascript
JavaScript禁止复制与粘贴的实现代码
May 16 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
Dec 26 Javascript
解决vue router使用 history 模式刷新后404问题
Jul 19 Javascript
微信小程序实现图片预览功能
Jan 31 Javascript
关于HTML5的data-*自定义属性的总结
May 05 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 MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
Eval and new funciton not the same thing
2012/12/27 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
Python 如何查找特定类型文件
2020/08/17 Python
Python用Jira库来操作Jira
2020/12/28 Python
PHP面试题及答案二
2015/05/23 面试题
实习生岗位职责
2014/04/12 职场文书
留学经费担保书
2014/05/12 职场文书
工程项目经理任命书
2014/06/05 职场文书
四风问题查摆材料
2014/08/25 职场文书
办理房产证委托书
2014/09/18 职场文书
灵山大佛导游词
2015/02/04 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
mysql部分操作
2021/04/05 MySQL