js实现获取验证短信倒计时功能

简介: 前言今天和大家分享一个小功能,在我们进行需要获取手机验证码或其他方式的验证码进行登录时会有一个功能,就是当你点击发送验证码时会有一个倒计时,倒计时没有结束时按钮是禁用的状态,防止重复发送短信,下面我们来看一下这个功能使用JS该如何实现。

前言

今天和大家分享一个小功能,在我们进行需要获取手机验证码或其他方式的验证码进行登录时会有一个功能,就是当你点击发送验证码时会有一个倒计时,倒计时没有结束时按钮是禁用的状态,防止重复发送短信,下面我们来看一下这个功能使用JS该如何实现。

一、功能分析

按钮点击之后,会禁用按钮,disable为true。

同时按钮里面的内容发生变化,button里面的内容通过innerHTML修改。

同时秒数发送变化,所以我们需要用到定时器。

定义一个变量在定时器里面不断的递减。

如果变量为0时就说明到了时间,我们需要停止定时器并且复原按钮初始状态。

二、具体实现

首先写我们的html部分:

<input type="number">
<button>获取验证码</button>

创建一个输入手机号的输入框和一个获取验证码的按钮。

再写我们的js部分:

var but = document.querySelector('button');
      var time = 10; //定义剩下的秒数
      but.addEventListener('click', function() {
        but.disabled = true;
        var timer = setInterval(function() {
          if (time == 0) {
            //清除定时器和复原按钮
            clearInterval(timer);
            but.disabled = false;
            but.innerHTML = '发送';
            time = 10; //这个10是重新开始
          } else {
            but.innerHTML = '剩余' + time + '秒';
            time--;
          }
        }, 1000);
      })

下面是没有点击时的样式:

74f3693b2b7145d8b486b427169e32f9.png

下面是点击后的样式:


96372ef7d0e348209d0cb2ac744dc452.png

总结

我们定义的time是一个倒计时的时间,一般为60秒,这里是为了不等太长的时间设置的10秒,大家可以根据自己的需要来设置倒计时的时长。

以上就是本章的全部内容,希望能够帮助到您。

相关文章
|
7天前
|
前端开发 JavaScript
使用 JavaScript 实现图片预览功能
使用 JavaScript 实现图片预览功能
27 0
|
4天前
|
存储 JavaScript 前端开发
js登陆验证
js登陆验证
9 0
|
4天前
|
JSON JavaScript 前端开发
JS三级联动功能制作
JS三级联动功能制作
9 0
|
4天前
|
JavaScript 安全 前端开发
js实现复制功能
js实现复制功能
|
4天前
|
JavaScript 前端开发
在js中正则表达式验证小时分钟,将输入的字符串转换为对应的小时和分钟
这篇文章介绍了如何在JavaScript中使用正则表达式来验证时间字符串的格式(小时和分钟),并提供了将时间字符串转换为JavaScript Date对象的示例代码及其测试结果。
|
4天前
|
JavaScript 前端开发 API
vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)
这篇文章介绍了如何在Vue框架中将表单输入验证逻辑封装到一个JavaScript文件中,并通过正则表达式验证邮箱、身份证、手机号等信息,同时确保两次密码输入的一致性。
|
4天前
|
JavaScript 前端开发 应用服务中间件
【qkl】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能
【区块链】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能
|
1月前
|
JavaScript
网页CAD(JS Vue 预览dwg)如何二次开发常用的CAD编辑功能
```markdown # CAD网页编程概览 - 使用mxcad库,实现CAD操作如删除、复制、镜像、移动和旋转。 - `erase()`方法删除实体,`clone()`配合`transformBy()`用于复制和编辑。 - `mirror()`和`transformBy(setMirror)`执行镜像操作,基于参考线。 - `move()`和`transformBy(setToTranslation)`实现移动功能。 - `rotate()`和`transformBy(setToRotation)`进行旋转,支持角度输入。 ```
网页CAD(JS Vue 预览dwg)如何二次开发常用的CAD编辑功能
|
18天前
|
JavaScript 算法 定位技术
利用Cesium和JS实现地点点聚合功能
利用Cesium和JS实现地点点聚合功能
27 0
|
1月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的多功能智能手机阅读APP附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的多功能智能手机阅读APP附带文章源码部署视频讲解等
39 1