javascript实现发送短信倒计时

yizhihongxing

为在网页上实现发送短信倒计时,需要使用JavaScript编写代码。具体实现过程如下。

  1. HTML文件中,需要加入一个用于显示验证码的按钮。按钮的初始状态为“发送验证码”,点击后会触发发送验证码的函数。
<button id="send">发送验证码</button>
  1. 在JavaScript文件中,需要定义一个计时器函数,用于倒计时。函数中应该设置计时器变量,并对按钮的状态进行改变。在倒计时结束时,需要清除计时器变量,并重新恢复按钮的状态。
function countDown() {
  var count = 60; // 设置计时秒数
  var timer = setInterval(function() {
    count--;
    var btn = document.getElementById("send");
    btn.disabled = true;
    btn.innerHTML = count + " 秒后重新获取";
    if (count == 0) {
      clearInterval(timer);
      btn.disabled = false;
      btn.innerHTML = "发送验证码";
    }
  }, 1000);
}
  1. 在发送验证码的函数中,需要调用计时器函数,并通过AJAX发送请求。该请求的相关参数应该写在URL中。请求发送成功后,调用计时器函数,实现倒计时。
function sendVerificationCode() {
  var req = new XMLHttpRequest();
  var url = "/api/sms/send?phone=1234567890"; // 请求URL
  req.open("GET", url);
  req.onreadystatechange = function() {
    if (req.readyState == 4 && req.status == 200) {
      countDown();
      console.log(req.responseText);
    }
  };
  req.send();
}
  1. HTML文件中,需要在按钮上添加点击事件,当用户点击按钮时,调用发送验证码函数。
<button id="send" onclick="sendVerificationCode()">发送验证码</button>
  1. 程序运行时,点击按钮,页面会向服务器发送请求,请求成功后,计时器会开始倒计时,并在按钮上显示剩余时间。在倒计时结束后,按钮恢复初始状态,用户可以重新点击发送验证码。

示例1:我们在HTML文件中添加一个带有id属性的span元素,用于实现在倒计时过程中显示提示文本。在倒计时结束时,需要将该元素的内容清空。代码如下:

<button id="send" onclick="sendVerificationCode()">发送验证码</button>
<span id="tip"></span>

在JavaScript代码中,需要修改计时器函数:

function countDown() {
  var count = 60; // 设置计时秒数
  var timer = setInterval(function() {
    count--;
    var btn = document.getElementById("send");
    btn.disabled = true;
    btn.innerHTML = count + " 秒后重新获取";
    var tip = document.getElementById("tip");
    tip.innerText = "验证码已发送,请注意查收";
    if (count == 0) {
      clearInterval(timer);
      btn.disabled = false;
      btn.innerHTML = "发送验证码";
      tip.innerText = "";
    }
  }, 1000);
}

示例2:在发送验证码的请求中,可能会遇到请求失败的情况。为避免用户长时间等待导致误解,我们可以在请求失败后,停止倒计时,并修改按钮的提示文本。代码如下:

function sendVerificationCode() {
  var req = new XMLHttpRequest();
  var url = "/api/sms/send?phone=1234567890"; // 请求URL
  req.open("GET", url);
  req.onreadystatechange = function() {
    if (req.readyState == 4) {
      if (req.status == 200) {
        countDown();
        console.log(req.responseText);
      } else {
        clearInterval(timer);
        var btn = document.getElementById("send");
        btn.disabled = false;
        btn.innerHTML = "发送验证码";
        var tip = document.getElementById("tip");
        tip.innerText = "发送验证码失败,请稍后再试";
      }
    }
  };
  req.send();
}

在界面中,我们需要添加一个用于显示错误信息的span元素。

<button id="send" onclick="sendVerificationCode()">发送验证码</button>
<span id="tip"></span>
<span id="error"></span>

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

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • cookie的优化与购物车实例

    关于“cookie的优化与购物车实例”的完整攻略,我把它分成以下几部分,分别是: 什么是cookie cookie的优化 购物车实例说明 什么是cookie cookie指的是保存在用户计算机中的小文件,由网站或应用程序创建。cookie通常包含了一些网站的信息,例如用户偏爱的主题或购物车内容。每次用户访问同一网站时,浏览器会向服务器发送cookie。这可以…

    JavaScript 2023年6月11日
    00
  • javascript Window及document对象详细整理

    JavaScript Window及Document对象详细整理 在 JavaScript 中,Window 和 Document 是两个常用的对象,它们分别代表浏览器窗口和文档模型。本文将详细讲解它们的各种属性和方法。 Window 对象 Window 对象是 JavaScript 代码的全局对象,即在浏览器中,它代表整个浏览器窗口。在没有指定父窗口的情况…

    JavaScript 2023年5月27日
    00
  • JavaScript字符串对象(string)基本用法示例

    介绍JavaScript字符串对象(string)基本用法示例的完整攻略如下: 字符串对象简介 Javascript中的字符串对象指的是一串字符序列,可以依据需要进行处理,例如字符串连接、截取等操作。字符串对象是字符的集合,可以按照某些规则排序,由于这些规则是单独定义的,所以JavaScript字符串对象的排序规则与其他语言有所不同。可以使用双引号或单引号来…

    JavaScript 2023年6月10日
    00
  • 正则表达式(regex)入门、元字符(特殊字符)学习与提高

    正则表达式入门 正则表达式(regex)是一种用于处理文本的强大工具,它通常用于搜索、替换和验证字符串。正则表达式由一系列字符和元字符组成,它们可用于描述模式。本文将介绍正则表达式的基础知识以及一些常用元字符的用法。 正则表达式基础知识 字符字面量 在正则表达式中,普通字符(例如字母、数字)代表自己本身,匹配输入文本中的相应字符。例如,正则表达式 hello…

    JavaScript 2023年6月10日
    00
  • JavaScript事件处理的方式(三种)

    JavaScript事件处理的方式,一般可以分为三种,分别是通过HTML属性、DOM 0级事件处理和DOM 2级事件处理。下面将一一详细讲解。 1. HTML属性方式 使用HTML标签的事件属性来绑定事件,比如<button onclick=”alert(‘clicked’)”>Click me</button>。 HTML属性事件处…

    JavaScript 2023年5月17日
    00
  • js 程序执行与顺序实现详解

    JS程序执行与顺序实现详解 JS是一门单线程语言,指在一个时间只执行一个任务。虽然JS是单线程语言,但是它可以利用事件循环和回调实现异步编程。 1. JS代码的执行顺序 JS代码是从上往下一行一行执行的,但是在执行JS代码时,遇到如下情况就会把当前任务挂起,去执行其他任务: 等待Web API返回结果,例如:发起Ajax请求等。 等待定时器。 等待事件发生。…

    JavaScript 2023年5月27日
    00
  • 详解JS数组方法

    详解JavaScript数组方法 概述 JavaScript中数组(Array)是一种非常常用的数据结构,它们通常用于存储一系列的值。在JavaScript中,数组具有以下特点: 数组是一种有序的集合,每个元素都有一个索引。 数组的长度是可变的,可以随时添加或删除元素。 数组可以存储不同类型的值,例如数字、字符串、对象等。 JavaScript数组中常用的方…

    JavaScript 2023年5月18日
    00
  • js获取html参数及向swf传递参数应用介绍

    下面是针对“js获取html参数及向swf传递参数应用介绍”的完整攻略。 1. JS获取HTML参数 1.1 通过 URL 参数获取 JS获取 HTML 参数的最简单方法是解析 URL 参数。通过 window.location.search 可以获取到 URL 中的查询字符串部分,这个部分包含了所有的参数和它们的值。 示例: const queryStri…

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