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 相关文章推荐
jquery UI 1.72 之datepicker
Dec 29 Javascript
jquery常用技巧及常用方法列表集合
Apr 06 Javascript
javascript实现div的显示和隐藏的小例子
Jun 25 Javascript
调用HttpHanlder的几种返回方式小结
Dec 20 Javascript
jQuery实现新消息在网页标题闪烁提示
Jun 23 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
js自定义回调函数
Dec 13 Javascript
js date 格式化
Feb 15 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
Sep 27 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
Oct 10 Javascript
vuex与组件联合使用的方法
May 10 Javascript
Angular8 实现table表格表头固定效果
Jan 03 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
FCKeditor的安装(PHP)
2007/01/13 PHP
php 用sock技术发送邮件的函数
2007/07/21 PHP
PHP时间戳使用实例代码
2008/06/07 PHP
php密码生成类实例
2014/09/24 PHP
php获取远程文件内容的函数
2015/11/02 PHP
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
Jquery Uploadify上传带进度条的简单实例
2014/02/12 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
axios学习教程全攻略
2017/03/26 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
django模板语法学习之include示例详解
2017/12/17 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
解决Django no such table: django_session的问题
2020/04/07 Python
Python更换pip源方法过程解析
2020/05/19 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
教师推荐信范文
2013/11/24 职场文书
促销活动总结报告
2014/04/26 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
升职感谢信
2015/01/22 职场文书
个人自荐书范文
2015/03/09 职场文书
丧事答谢词大全
2015/09/30 职场文书