JavaScript实现短信倒计时60s

当需要在网页中添加短信验证码的时候,我们通常需要一个倒计时的功能,限制60秒内只允许重新获取一次验证码。下面是JavaScript实现短信倒计时60s的攻略。

1. 倒计时基础框架

我们先来搭建倒计时的基本框架,HTML代码如下:

<button id="btn">获取验证码</button>

需要注意的是,这里的按钮id为“btn”,可以根据实际情况修改。

接下来,我们在JavaScript中获取该元素,并倒计时,在倒计时结束后恢复按钮的状态。

var btn = document.getElementById("btn");
var countdown = 60;

function settime(obj) {
  if (countdown == 0) {
    obj.removeAttribute("disabled");
    obj.innerText = "获取验证码";
    countdown = 60;
    return;
  } else {
    obj.setAttribute("disabled", true);
    obj.innerText = "重新发送(" + countdown + ")";
    countdown--;
  }
  setTimeout(function () {
    settime(obj);
  }, 1000);
}

2. 添加点击事件

在点击按钮的时候,我们需要触发倒计时函数。因此,我们需要在JavaScript中添加一个点击事件:

btn.addEventListener("click", function () {
  settime(this);
});

示例1:完整代码

接下来是完整代码示例1:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>短信验证码倒计时</title>
</head>

<body>
  <button id="btn">获取验证码</button>
  <script>
    var btn = document.getElementById("btn");
    var countdown = 60;

    function settime(obj) {
      if (countdown == 0) {
        obj.removeAttribute("disabled");
        obj.innerText = "获取验证码";
        countdown = 60;
        return;
      } else {
        obj.setAttribute("disabled", true);
        obj.innerText = "重新发送(" + countdown + ")";
        countdown--;
      }
      setTimeout(function () {
        settime(obj);
      }, 1000);
    }

    btn.addEventListener("click", function () {
      settime(this);
    });
  </script>
</body>

</html>

示例2:jQuery实现

除了原生JavaScript,我们也可以使用jQuery实现短信验证码倒计时,如下:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>短信验证码倒计时</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>

<body>
  <button id="btn">获取验证码</button>
  <script>
    var countdown = 60;

    function settime(obj) {
      if (countdown == 0) {
        obj.removeAttr("disabled");
        obj.text("获取验证码");
        countdown = 60;
        return;
      } else {
        obj.attr("disabled", true);
        obj.text("重新发送(" + countdown + ")");
        countdown--;
      }
      setTimeout(function () {
        settime(obj);
      }, 1000);
    }

    $('#btn').click(function () {
      settime($(this));
    });
  </script>
</body>

</html>

需要注意的是,在使用jQuery之前,需要先引入jQuery库。通过与之前的原生JavaScript对比,可以发现,在使用jQuery实现倒计时的时候,只需要在选择器中传入字符串形式的id,即可选择按钮元素。另外,jQuery中的获取属性和设置属性分别使用“removeAttr”和“attr”函数,以及“text”函数用于设置对应的文本内容。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现短信倒计时60s - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 从JavaScript纯函数解析最深刻的函子 Monad实例

    让我给你讲解一下“从JavaScript纯函数解析最深刻的函子Monad实例”的完整攻略。 1. 函数式编程简介 在开始解析函子Monad之前,我们需要先了解一些函数式编程的基础概念。函数式编程是一种编程风格,其核心思想是将计算过程尽可能的使用函数来描述和实现。在函数式编程中,函数是一等公民,也就是说函数可以像其他数据类型一样被传递、赋值、作为参数或返回值等…

    JavaScript 2023年5月28日
    00
  • 深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解

    当JavaScript引擎要执行一段代码时,它会将代码中的表达式转换成值,这个转换的过程被称为求值。在求值的过程中,JavaScript引擎采用了不同的求值策略。本文将详细介绍JavaScript中的求值策略及其相关的知识点。 一、JavaScript中的表达式 在JavaScript中,表达式是由运算符和操作数组成的。表达式主要分为以下几类: 原始表达式:…

    JavaScript 2023年5月28日
    00
  • 基于JavaScript实现五子棋游戏

    基于JavaScript实现五子棋游戏攻略 简介 五子棋是一款益智类的棋类游戏,它的规则简单易懂,但是玩起来十分有趣。在这里,我们将会使用JavaScript语言来实现五子棋游戏。 前置知识 在开始开发之前,我们需要掌握以下知识: HTML和CSS基础知识。 JavaScript基础知识,以及DOM操作和事件处理相关的知识。 一定的算法和数据结构基础。 实现…

    JavaScript 2023年6月11日
    00
  • javascript从image转换为base64位编码的String

    下面是JavaScript将Image转换为Base64位编码的字符串的完整攻略: 一、背景介绍 在JavaScript中,将图片转换为Base64编码的字符串可以非常方便地实现图片预加载、图片上传、图片存储等多种功能,而不必通过服务器进行处理。 二、步骤说明 创建一个Image对象 var img = new Image(); 指定Image对象的src属…

    JavaScript 2023年5月19日
    00
  • js合并两个数组生成合并后的key:value数组

    要完成在JavaScript中合并两个数组生成键值对数组的任务,请按照以下步骤进行: 定义两个数组,作为操作对象。 javascript const keys = [‘name’, ‘age’, ‘gender’]; const values = [‘John’, 25, ‘male’]; 定义一个空数组,用于存储合并后的键值对数组。 javascript …

    JavaScript 2023年5月28日
    00
  • 分享纯手写漂亮的表单验证

    下面是关于如何分享纯手写漂亮的表单验证的完整攻略: 1. 为什么需要表单验证 在网站开发中,表单是非常重要的交互方式之一。表单用于收集和提交用户的数据,因此表单验证是非常必要的。表单验证可以确保用户输入的数据满足我们的需求,比如确保用户的邮箱格式正确、密码符合规范等。如果没有表单验证,那么用户可能会输入错误或者恶意的数据,造成网站数据的被破坏,或者影响用户使…

    JavaScript 2023年6月10日
    00
  • asp.net下使用jQuery.AutoComplete完成仿淘宝商品搜索自动完成功能(改进了键盘上下选择体验)

    下面是详细讲解“asp.net下使用jQuery.AutoComplete完成仿淘宝商品搜索自动完成功能(改进了键盘上下选择体验)”的完整攻略。 第一步:引入jQuery和jQuery UI库 首先,我们需要在html页面中引入jQuery和jQuery UI库。这可以通过在head标签内添加如下代码来实现: <head> <script …

    JavaScript 2023年6月11日
    00
  • 原生js验证简洁注册登录页面

    当我们需要开发一个简洁的注册登录页面时,JavaScript 可以用来验证用户输入的数据是否符合要求。以下是一些步骤来实现这个过程。 1. 获取表单数据 我们首先需要获取用户输入的数据,比如注册表单中的用户名、密码和电子邮箱。我们可以使用 document.getElementById 来获取表单中 input 标签的值。 示例 1:获取用户名 var us…

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