js实现验证码倒计时效果

JS实现验证码倒计时效果

在注册、登录等过程中,我们常常需要输入验证码以确保账户安全。而验证码通常会有一个倒计时,如果不再规定的时间内完成输入,则验证码失效。本文将介绍如何利用JavaScript实现验证码倒计时效果。

创建HTML结构

首先我们需要创建一个HTML结构,这里我们创建一个简单的表单,其中包含手机号、验证码以及发送验证码的按钮。

<form>
  <label for="phone">手机号:</label>
  <input type="text" id="phone" name="phone">
  <br>
  <label for="code">验证码:</label>
  <input type="text" id="code" name="code">
  <button type="button" id="sendCode">发送验证码</button>
</form>

编写JavaScript代码

接着我们编写JavaScript代码,实现发送验证码并倒计时的功能。

// 获取DOM元素
var phoneInput = document.getElementById('phone')
var codeInput = document.getElementById('code')
var sendCodeBtn = document.getElementById('sendCode')

// 定义倒计时时间
var countdownTime = 60

// 发送验证码函数
function sendCode() {
  // 判断手机号是否合法,这里简单处理,只判断是否为11位数字
  if (phoneInput.value && /^\d{11}$/.test(phoneInput.value)) {
    // 模拟发送验证码的过程,这里用了setTimeout实现
    setTimeout(function () {
      // 发送成功后禁用发送按钮并开始倒计时
      sendCodeBtn.disabled = true
      countdown()
    }, 1000)
  }
}

// 倒计时函数
function countdown() {
  // 更新发送按钮的文本和样式
  sendCodeBtn.textContent = countdownTime + '秒后重新发送'
  sendCodeBtn.style.backgroundColor = '#ccc'

  if (countdownTime > 0) {
    // 当倒计时未结束时,继续倒计时
    countdownTime--
    setTimeout(countdown, 1000)
  } else {
    // 当倒计时结束时,恢复发送按钮的文本和样式
    sendCodeBtn.textContent = '发送验证码'
    sendCodeBtn.style.backgroundColor = ''
    sendCodeBtn.disabled = false
    countdownTime = 60
  }
}

// 监听发送按钮的点击事件,调用发送验证码函数
sendCodeBtn.addEventListener('click', sendCode)

总结

以上便是实现验证码倒计时效果的完整代码。通过编写JavaScript代码,我们实现了发送验证码、倒计时,并且在倒计时结束时恢复发送按钮的状态。这样我们就可以为用户提供更加便捷的账户验证操作了。

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

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • 巧解 JavaScript 中的嵌套替换(强大正则)

    巧解 JavaScript 中的嵌套替换(强大正则)攻略 在 JavaScript 中,我们经常需要对字符串进行替换操作。通常情况下,我们可以使用 replace() 方法来实现简单的替换。但是,当涉及到嵌套替换时,即在替换的结果中还存在需要替换的内容,这时候就需要使用强大的正则表达式来解决了。 下面是一个详细的攻略,介绍如何巧妙地在 JavaScript …

    other 2023年7月28日
    00
  • 水星无线路由器怎么设置无线密码及修改登陆用户名和密码

    以下是“水星无线路由器怎么设置无线密码及修改登录用户名和密码”的完整攻略,包括步骤和具体操作实例。 设置无线密码 连接无线路由器:首先将电脑的网线插入路由器的LAN口上,再将无线路由器电源接好插到电源插座上,等待无线路由器启动。 打开路由器设置页面:在电脑端打开浏览器(建议使用Chrome或Firefox),在浏览器地址栏中输入默认网关IP地址(注:无线路由…

    other 2023年6月27日
    00
  • api-hook 更轻量的接口测试工具

    API-Hook是一种轻量级的接口测试工具,可以用于测试Web API和HTTP服务。以下是使用API-Hook进行接口测试的详细攻略: 安装API-Hook API-Hook是一个基于Node.js的命令行工具,可以通过npm安装。在终端中执行以下命令即可安装API-Hook: npm install -g api-hook 编写测试脚本 在API-Hoo…

    other 2023年5月7日
    00
  • Win11蓝屏收集错误信息重启怎么修复? Win11蓝屏自动重启的解决办法

    Win11蓝屏收集错误信息重启是一种紧急方式,用于避免系统损坏。但是,用户可能会遇到失败收集错误信息并重启电脑的情况。下面是这种问题的解决办法: 解决Win11蓝屏收集错误信息重启失败的问题 方法一:进入“安全模式”并通过“高级选项”修复 重启你的电脑,在Win11启动界面上,按住Shift键,然后单击“重新启动”选项。这将进入“高级选项”菜单。 在“高级选…

    other 2023年6月20日
    00
  • canvas基础之旅

    Canvas基础之旅 Canvas是HTML5中的一个重要特性,它提供了一种在网页上绘制图形的方式。通过Canvas,我们可以在网页上绘制各种图形,如线条、矩形、圆形、文本等。本文将介绍Canvas的基础知识和使用方法,并提供两个示例说明。 基础知识 在使用Canvas之前,我们需要了解一些基础知识: Canvas是HTML5中的一个标签,用于在网页上绘制图…

    other 2023年5月5日
    00
  • 微软 Visual Studio 2010官方下载地址给大家

    微软 Visual Studio 2010官方下载地址攻略 Visual Studio 2010是微软的一款集成开发环境(IDE),用于开发各种类型的应用程序。以下是获取Visual Studio 2010的官方下载地址的详细攻略。 步骤一:访问微软官方网站 首先,打开您的网络浏览器,并访问微软的官方网站。您可以在浏览器的地址栏中输入以下网址:https:/…

    other 2023年8月4日
    00
  • 苹果发布watchOS 6.2.8首个开发人员测试版(附更新内容及升级方法)

    苹果发布watchOS 6.2.8首个开发人员测试版 苹果公司于2020年7月10日发布了watchOS 6.2.8首个开发人员测试版,这是一次更新迭代升级,本文介绍该更新内容和升级方法。 更新内容 watchOS 6.2.8主要更新内容如下:- 进一步优化了系统性能和稳定性;- 修复了已知的问题。 升级步骤 以下是watchOS 6.2.8升级步骤: 确保…

    other 2023年6月26日
    00
  • Windows server部署DHCP服务的详细教程

    为了方便理解,我将这个问题分为以下四个部分: DHCP服务的概念介绍。 Windows Server部署DHCP服务的准备工作。 Windows Server部署DHCP服务的步骤详解。 示例说明。 DHCP服务的概念介绍 DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个局域网络的网络协议。DHCP…

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