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 相关文章推荐
在Python中使用glob模块查找文件路径的方法
Jun 17 Javascript
详解javascript的变量与标识符
Jan 04 Javascript
多种JQuery循环滚动文字图片效果代码
Jun 23 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
JS 设置Cookie 有效期 检测cookie
Jun 15 Javascript
微信小程序实现选项卡功能
Jun 19 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
May 16 Javascript
JS实现求5的阶乘示例
Jan 21 Javascript
vue选项卡切换登录方式小案例
Sep 27 Javascript
JS window对象简单操作完整示例
Jan 14 Javascript
javascript canvas API内容整理
Feb 16 Javascript
Vue+webpack实现懒加载过程解析
Feb 17 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
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
php自定义apk安装包实例
2014/10/20 PHP
php自定义分页类完整实例
2015/12/25 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
javascript 闭包详解
2015/07/02 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
Python创建文件和追加文件内容实例
2014/10/21 Python
python通过链接抓取网站详解
2019/11/20 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
中国旅游网站:途牛旅游网
2019/09/29 全球购物
学生宿舍管理制度
2014/01/30 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
环保专项行动方案
2014/05/12 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
2014年政工师工作总结
2014/12/18 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
师德承诺书2015
2015/04/28 职场文书
亲情作文之母爱
2019/09/25 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS