js实现点击获取验证码倒计时效果

下面是“js实现点击获取验证码倒计时效果”的完整攻略。

1. 编写HTML

在HTML中添加一个获取验证码的按钮和一个显示倒计时的区域,代码如下:

<input type="button" value="获取验证码" id="btn" onclick="getCode()" />
<span id="countdown"></span>

2. 编写JavaScript函数

在JavaScript中编写一个函数用于获取验证码并启动倒计时:

function getCode() {
  // 获取验证码的逻辑
  // ...

  // 启动倒计时
  var seconds = 60;
  var countdownTimer = setInterval(function() {
    seconds--;
    document.getElementById("countdown").innerText = seconds + "秒后重新获取";
    if (seconds <= 0) {
      clearInterval(countdownTimer);
      document.getElementById("countdown").innerText = "";
    }
  }, 1000);
}

在该函数中,我们首先可以编写获取验证码的逻辑,比如向后台发送请求获取验证码,这里为了简单起见就省略了。

然后我们定义了一个计时器 setInterval,每隔一秒钟就更新倒计时的显示区域,当倒计时到0秒时停止计时器,并将显示区域清空。

3. 示例说明

示例一

我们可以在点击获取验证码的按钮上添加一个 disabled 属性,在倒计时期间禁用该按钮,避免用户多次点击获取验证码的按钮,从而导致重复发送短信或邮件。

<input type="button" value="获取验证码" id="btn" onclick="getCode()" disabled="disabled" />

修改获取验证码的函数:

function getCode() {
  // 获取验证码的逻辑
  // ...

  // 禁用按钮
  document.getElementById("btn").setAttribute("disabled", "disabled");

  // 启动倒计时
  var seconds = 60;
  var countdownTimer = setInterval(function() {
    seconds--;
    document.getElementById("countdown").innerText = seconds + "秒后重新获取";
    if (seconds <= 0) {
      clearInterval(countdownTimer);
      document.getElementById("countdown").innerText = "";
      // 可以在倒计时结束后启用按钮
      document.getElementById("btn").removeAttribute("disabled");
    }
  }, 1000);
}

示例二

我们可以用 localStorage 来记录倒计时结束时间,当用户离开页面并重新进入时,可以根据记录的时间来判断是否需要重新启动倒计时。

修改获取验证码的函数:

function getCode() {
  // 获取验证码的逻辑
  // ...

  // 设置倒计时结束时间
  var expireTime = new Date().getTime() + 60000; // 假设倒计时1分钟
  localStorage.setItem("expireTime", expireTime);

  // 禁用按钮
  document.getElementById("btn").setAttribute("disabled", "disabled");

  // 启动倒计时
  var countdownTimer = setInterval(function() {
    var remainTime = parseInt((localStorage.getItem("expireTime") - new Date().getTime()) / 1000);
    if (remainTime <= 0) {
      clearInterval(countdownTimer);
      document.getElementById("countdown").innerText = "";
      // 可以在倒计时结束后启用按钮
      document.getElementById("btn").removeAttribute("disabled");
    } else {
      document.getElementById("countdown").innerText = remainTime + "秒后重新获取";
    }
  }, 1000);
}

以上两个示例仅是其中的两种可能,根据实际情况可以按需适配。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现点击获取验证码倒计时效果 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS字符串统计操作示例【遍历,截取,输出,计算】

    为了更好地讲解 “JS字符串统计操作示例【遍历,截取,输出,计算】”,我们首先需要了解什么是字符串以及JavaScript中的字符串操作函数。 1. 什么是字符串? 字符串就是一系列字符的集合,例如”Hello World!”就是一个字符串。在JavaScript中,字符串可以用单引号、双引号或被反斜杠包括起来。 例如: var str = ‘Hello W…

    JavaScript 2023年5月28日
    00
  • JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】

    JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】 在JavaScript中,可以使用Date对象来获取当前时间和日期,并对其进行一些简单和复杂的操作。为了方便起见,以下是获取日期的常见方法实例: 获取当前日期 要获取当前日期,可以使用以下代码: let today = new Date(); let year = today.getFullY…

    JavaScript 2023年5月27日
    00
  • 千万不要错过的JavaScript高效对比数组差异方法

    千万不要错过的JavaScript高效对比数组差异方法 在JavaScript编程中,我们常常需要对比两个数组之间的差异,找出其中共有和不同的部分。本文介绍了JavaScript中三种高效对比数组差异的方法,分别是使用ES5中Array的filter、ES6中的Set,以及lodash库中的difference方法。 1. 使用Array的filter方法 …

    JavaScript 2023年5月28日
    00
  • JS实现保留n位小数的四舍五入问题示例

    下面是“JS实现保留n位小数的四舍五入问题”的完整攻略。 问题描述 在使用JavaScript进行数值处理时,经常需要保留小数位数。在保留小数位数的同时,可能还需要进行四舍五入,以保证结果更为准确和精确。本文将介绍如何使用JavaScript实现保留n位小数的四舍五入操作。 解决方法 方法一:使用toFixed()方法 JavaScript提供了toFixe…

    JavaScript 2023年5月28日
    00
  • 通过js示例讲解时间复杂度与空间复杂度

    下面我将详细讲解“通过JS示例讲解时间复杂度和空间复杂度”的攻略。 什么是时间复杂度和空间复杂度 时间复杂度和空间复杂度都是算法评估的重要指标,分别表示了算法执行时间和所需内存空间的量度。 时间复杂度:指执行算法所需时间的数量级,常用大O表示法来表示。例如,O(1)表示执行时间常量,O(n)表示执行时间与数据规模成线性比例,O(n^2)表示有执行时间与数据规…

    JavaScript 2023年5月28日
    00
  • JavaScript中你不知道的Object.entries用法

    JavaScript中你不知道的Object.entries用法 在JavaScript中,Object.entries()是一个非常实用的方法,可以用于将对象转换为可迭代的键值对数组。这个方法可以用于很多场景,例如对象的遍历、对象的特定属性操作等。 1. 基本语法 Object.entries()方法的语法非常简单,如下所示: Object.entries…

    JavaScript 2023年5月27日
    00
  • javascript闭包入门示例

    当我们在 JavaScript 中使用函数时,往往会遇到闭包的概念。那么什么是闭包呢?简单来说,闭包就是一个可以访问自由变量的函数。这个自由变量指的是函数内部定义的变量,在函数外也可以访问。下面我们通过两个示例来深入理解 JavaScript 闭包的概念和用法。 示例 1:基础闭包示例 function outerFunction() { var outer…

    JavaScript 2023年6月10日
    00
  • VueCli3中兼容IE11配置的艰苦历程

    下面是详细的“VueCli3中兼容IE11配置的艰苦历程”的完整攻略: 第一步:安装依赖和设置babel 在项目根目录下,通过以下命令安装两个依赖: npm install babel-loader@8.0.0-beta.0 @babel/core @babel/preset-env webpack –save-dev 这里我们使用了babel-loade…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部