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日

相关文章

  • 关于vue 结合原生js 解决echarts resize问题

    关于vue结合原生js解决echarts resize问题,可以使用下面的攻略: 攻略说明 采用vue-echarts插件加载echarts,并且绑定图表的 DOM 元素到 vue 实例中 使用 js 的 resize() 方法,监听 window 大小变化,当窗口大小发生改变时,使用 triggerResize() 方法通知echarts自适应大小 示例说…

    JavaScript 2023年6月11日
    00
  • Javascript继承机制的设计思想分享

    Javascript继承机制的设计思想分享 概述 Javascript是一门基于原型实现的语言,继承机制是Javascript的核心概念之一。本文将讲述Javascript继承机制的设计思想和实现方式,为读者提供全面的知识体系。 原型链 Javascript的继承机制是基于原型链实现的,原型链是一种基于对象的链式结构。每个Javascript对象都有一个指向…

    JavaScript 2023年6月11日
    00
  • ASP 快速执行动态网页

    ASP(Active Server Pages)是一种用于快速执行动态网页的技术。它能够将HTML页面与动态代码结合起来,使得网页可以动态地生成内容,从而大大提高了网页的交互性和可读性。下面是ASP快速执行动态网页的完整攻略: 确认服务器支持ASP技术在使用ASP技术之前,首先需要确认服务器是否支持ASP技术。一般情况下,IIS服务器都是默认支持ASP技术的…

    JavaScript 2023年6月11日
    00
  • javascript 封装Date日期类实例详解

    Javascript 封装 Date 日期类实例详解 在 Javascript 中,Date 类是表示日期和时间的对象,Date 有多种构造函数和方法,可以根据需求获取、设置日期或时间,也可以将日期对象转换为字符串。 创建 Date 对象 可以使用 new Date() 构造函数创建 Date 对象,如果没有传递参数,则创建当前日期和时间的 Date 对象。…

    JavaScript 2023年6月10日
    00
  • js实现日期级联效果

    当我们需要在日期选择器中实现级联效果时,需要知道选择器之间的依赖关系,例如年份选择器与月份选择器、月份选择器与日期选择器的关系。在JavaScript中,我们可以通过以下几个步骤来实现日期级联效果: 1. 获取DOM元素 首先需要获取到页面上对应的DOM元素,为每个日期选择器都添加一个id,例如: <select id="year"…

    JavaScript 2023年5月27日
    00
  • js Math数学简单使用操作示例

    下面是关于“js Math数学简单使用操作示例”的完整攻略。 一、Math对象概述 JavaScript的内置对象之一是Math对象,它包含了许多常见的数学函数和常量。Math主要对数字进行操作,例如数学运算、幂运算、三角函数等。 二、Math对象中的常用方法 下面是 Math 对象中一些常用方法的介绍: 1. Math.floor() Math.floor…

    JavaScript 2023年5月27日
    00
  • javascript基础——String

    JavaScript基础 – String 什么是String String是JavaScript中的一种基本数据类型,表示文本字符串。可以使用单引号(‘)、双引号(“)或反引号(“`)来表示一个字符串。 字符串的基本操作 字符串的长度 可以使用字符串的length属性来获取该字符串的长度。 const str = ‘hello, world!’; con…

    JavaScript 2023年5月18日
    00
  • javascript中的变量作用域以及变量提升详细介绍

    让我们来详细讲解一下”JavaScript中的变量作用域以及变量提升”。 变量作用域 变量作用域是指程序中定义变量的区域。JavaScript中,变量作用域有两种类型:全局作用域和局部作用域。 全局作用域 在全局作用域中定义的变量,可以被代码中的任意函数所访问: // 全局作用域 var globalVar = "我是全局变量"; fun…

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