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日

相关文章

  • Flash正确的口型吻合动画技巧

    Flash正确的口型吻合动画技巧攻略 简介 Flash动画是一种常用的动画制作工具,而正确的口型吻合动画技巧是制作高质量动画的关键之一。本攻略将详细介绍如何使用Flash来实现正确的口型吻合动画。 步骤 1. 准备工作 在开始制作口型吻合动画之前,需要准备以下资源:- 角色设计:确定动画中的角色形象和特征。- 口型素材:准备一系列不同口型的图像或矢量图形,以…

    other 2023年7月28日
    00
  • 详解android adb常见用法

    详解Android ADB常见用法 ADB(Android Debug Bridge)是Android开发工具包(SDK)中的一个命令行工具,用于与连接的Android设备进行通信和调试。以下是ADB的常见用法及示例说明: 查看已连接设备列表 使用以下命令可以查看当前连接的Android设备列表: adb devices 示例输出: List of devi…

    other 2023年10月13日
    00
  • Jackson2JsonRedisSerializer和GenericJackson2JsonRedisSerializer区别

    以下是关于Jackson2JsonRedisSerializer和GenericJackson2JsonRedisSerializer的区别的详细攻略: Jackson2JsonRedisSerializer Jackson2JsonRedisSerializer是Spring Data Redis提供的一种序列化器,用于将对象序列化为JSON格式存储在Re…

    other 2023年10月14日
    00
  • C#中正则表达式的3种匹配模式

    C#中正则表达式的3种匹配模式 正则表达式是一种强大的模式匹配工具,可以在C#中使用。在C#中,有三种常见的正则表达式匹配模式,分别是: 1. 匹配整个字符串 这种模式用于判断一个字符串是否完全匹配某个正则表达式。可以使用Regex.IsMatch方法来实现。 示例代码: using System; using System.Text.RegularExpr…

    other 2023年8月16日
    00
  • 在电脑上查找不记得文件名的文件的方法教程(图文)

    在电脑上查找不记得文件名的文件的方法教程 如果你经常使用电脑,那么很有可能会有一些文件,你不记得它们的文件名,或者你只知道一些小的片段,例如:你可能记得这个文件在几天前、几周前、几个月前或甚至几年前被创建,或者你可能知道它是在哪个文件夹中被储存。但是,如果你不记得确切的文件名,那么要找到它就非常困难了。下面是我们向你推荐的几种方法,让你能够快速找出你不记得文…

    other 2023年6月26日
    00
  • 叮咚FM如何查看版本号?叮咚FM查看版本号方法

    叮咚FM如何查看版本号攻略 叮咚FM是一款流行的音频应用程序,如果你想查看它的版本号,可以按照以下步骤进行操作: 打开叮咚FM应用程序:在你的手机上找到叮咚FM应用程序的图标,并点击打开。 进入设置页面:在叮咚FM的主界面上,通常会有一个设置图标,它通常是一个齿轮或者三个竖直排列的点。点击这个图标,进入设置页面。 查找关于页面:在设置页面中,你需要找到一个关…

    other 2023年8月2日
    00
  • C++设计模式之工厂模式

    接下来我将详细讲解C++设计模式之工厂模式的完整攻略。 工厂模式概述 工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们使用一个工厂方法来创建对象,而不是直接通过new来创建。这样有助于我们实现松耦合和高内聚。 工厂模式的核心思想是定义一个用来创建对象的接口,让子类决定具体要实例化对象的类。这样…

    other 2023年6月27日
    00
  • umask函数

    以下是详细讲解“umask函数的完整攻略”的标准Markdown格式文本: umask函数的完整攻略 umask函数是一个UNIX系统调用,用于设置进程的文件创建掩码。本文将介绍umask函数的基本概念、使用方法和两个示例说明。 1. umask函数的基本概念 umask函数是一个UNIX系统调用,用于设置进程的文件创建掩码。文件创建掩码是一个8位二制数,用…

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