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 相关文章推荐
CSS+JS构建的图片查看器
Jul 22 Javascript
jquery插件bxslider用法实例分析
Apr 16 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
May 18 Javascript
移动端js触摸事件详解
Sep 18 Javascript
实例浅析js的this
Dec 11 Javascript
canvas实现探照灯效果
Feb 07 Javascript
微信小程序中的swiper组件详解
Apr 14 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
Nov 21 Javascript
node.js基于socket.io快速实现一个实时通讯应用
Apr 23 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
Aug 07 Javascript
mapboxgl实现带箭头轨迹线的代码
Jan 04 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
怎么使 Mysql 数据同步
2006/10/09 PHP
PHP 转义使用详解
2013/07/15 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
Angular17之Angular自定义指令详解
2018/01/21 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
vue内置指令详解
2018/04/03 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
Python程序员开发中常犯的10个错误
2014/07/07 Python
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
简单实现python画圆功能
2018/01/25 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
优秀实习自我鉴定
2013/12/04 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
跑出一片天观后感
2015/06/08 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
Python合并pdf文件的工具
2021/07/01 Python