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(笔记)
Oct 06 Javascript
通过javascript获取iframe里的值示例代码
Jun 24 Javascript
动态的绑定事件addEventListener方法的使用
Jan 24 Javascript
javascript常用函数(2)
Nov 05 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
May 09 Javascript
js 中获取制定的cook信息实现方法
Nov 19 Javascript
jQuery中DOM节点删除之empty与remove
Jan 20 Javascript
webpack学习--webpack经典7分钟入门教程
Jun 28 Javascript
微信小程序-getUserInfo回调的实例详解
Oct 27 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 Javascript
vue-cli 3 全局过滤器的实例代码详解
Jun 03 Javascript
vue实现移动端拖动排序
Aug 21 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中Session的概念
2006/10/09 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
JavaScript 事件系统
2010/07/22 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
AngularJs Forms详解及简单示例
2016/09/01 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
Python算法之栈(stack)的实现
2014/08/18 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
在Django的视图中使用数据库查询的方法
2015/07/16 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
python计算auc的方法
2020/09/09 Python
python能做哪些生活有趣的事情
2020/09/09 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
《狼和小羊》教学反思
2014/04/20 职场文书
资料员岗位职责
2015/02/10 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
暂住证明怎么写
2015/06/19 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
Golang日志包的使用
2022/04/20 Golang
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技