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

yizhihongxing

下面是“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日

相关文章

  • JavaScript window.location对象

    JavaScript中的window.location对象用于获取或设置浏览器当前打开页面的URL地址信息,它包含了当前页面的所有信息,如:协议、主机名、路径、查询字符串等等。接下来我们将详细讲述该对象的使用。 获取当前页面信息 我们可以使用window.location对象来获取当前页面的相关信息,如下所示: // 获取当前页面的协议,如:http、htt…

    JavaScript 2023年5月27日
    00
  • 详解javascript函数的参数

    下面就详细讲解“详解JavaScript函数的参数”的完整攻略。 1. 简介 在 JavaScript 函数定义中,可以传递任意数量的参数,包括数字、字符串、对象等,这些参数可以在函数体中使用。函数的参数可以被看做是可以传递给函数的变量,它们是函数体内部的局部变量。 2. 基本用法 JavaScript 函数定义中可以传递任意数量的参数,这些参数通过逗号隔开…

    JavaScript 2023年5月27日
    00
  • JS实现简易日历效果

    下面是详细讲解JS实现简易日历效果的完整攻略。 1.准备工作 在开始之前,我们需要准备以下工作: 一个HTML文件,用于展示日历 一个CSS文件,用于美化页面 一个JS文件,用于实现日历功能 2.HTML结构 我们需要在HTML中添加以下结构: <div class="calendar"> <div class=&quo…

    JavaScript 2023年5月27日
    00
  • javascript 循环调用示例介绍

    下面是关于“javascript 循环调用示例介绍”的完整攻略。 什么是循环调用? JavaScript中的循环调用指的是函数自身在执行过程中调用自己的现象,称为递归(recursion),是一种常见的算法设计思想。JavaScript中的递归一般需要终止条件来结束递归,否则会导致栈溢出。循环调用常常用于解决问题的各种算法设计,如搜索、排列、图形算法等。 示…

    JavaScript 2023年6月10日
    00
  • js操作时间(年-月-日 时-分-秒 星期几)

    下面是JS操作时间的完整攻略。 获取当前时间 要获取当前时间,可以使用Date对象。该对象提供的方法可以获取当前时间的年、月、日、时、分、秒等信息。 const now = new Date(); console.log(now); // 输出当前时间的完整信息 const year = now.getFullYear(); // 获取当前年份 const …

    JavaScript 2023年5月27日
    00
  • 在js文件中引入(调用)另一个js文件的三种方法

    在 JavaScript 中引入(调用)其他 JavaScript 文件的方式主要有以下三种: 1. 使用<script>标签引入(调用)其他 JavaScript 文件 使用<script>标签可以在 HTML 文件中引入(调用)其他 JavaScript 文件,该文件可以被浏览器直接加载。 <script>标签通常放在…

    JavaScript 2023年5月27日
    00
  • 8个工程必备的JavaScript代码片段

    下面是“8个工程必备的JavaScript代码片段”的完整攻略: 简介 这篇攻略主要介绍8个在前端工程中经常使用的JavaScript代码片段,这些代码片段能够提高你的代码质量和工作效率,让你的代码更加可读、可维护。 文章目录 forEach循环遍历数组 Object.keys()获取对象的属性名数组 数组去重 获取URL参数值 判断一个对象是否为空 判断两…

    JavaScript 2023年5月27日
    00
  • 深入理解JavaScript系列(4) 立即调用的函数表达式

    下面是关于立即调用的函数表达式的详细讲解: 一、理解IIFE IIFE的全称是立即执行函数表达式 (Immediately Invoked Function Expression),顾名思义,这是一种定义后立即调用的函数表达式。下面是一段IIFE的代码示例: (function () { // code here })(); 上述代码中最外层的括号和最后面的…

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