JS短信倒计时案例

news/2024/7/24 7:40:44 标签: javascript, 前端
<!DOCTYPE html>
<html lang="en">
<!-- 案例分析:
1. 按钮点击之后,会变成禁用状态(disabled为ture)
2. 同时按钮里面的内容会变化,button里面的内容通过innerHTML修改
3. 按钮中的秒数发生变化,因此需要用到定时器
4. 定义一个变量,在定时器里面,不断递减
5. 如果变量为0说明到了时间,需要停止定时器,并且复原按钮初始状态 -->

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    span {
      font-size: 10px;
    }

    input {
      width: 130px;
      height: 15px;
      margin-left: 20px;
      font-size: 10px;
      color: #999;
    }

    button {
      width: 80px;
      font-size: 10px;
    }
  </style>
</head>

<body>
  <input type="text" placeholder='请输入手机号' id="tele">
  <button>获取验证码</button>
  <script>javascript">
    // 获取元素
    var input = document.querySelector('#tele');
    var btn = document.querySelector('button');
    // 注册事件
    input.addEventListener('focus', function () {
      this.style.color = '#000';
    })
    var time = 60;  // 定义剩余秒数
    btn.addEventListener('click', function () {
      var tele = input.value;
      if (tele.length != 11) {  //判断输入框内容的长度是否为11位
        input.value = '手机号输入有误!'; //如果输入有误,则输入框以红色文本提示错误
        input.style.color = '#ff0000';
        setTimeout(function () {  // 设置定时器,在给出输入错误的提示1s后恢复原始输入状态
          input.value = tele;
          input.style.color = '#000';
        }, 1000)
      } else {
        this.disabled = true; // 手机号输入正确,则按钮变为禁用状态,并设置定时器
        var timer = setInterval(function () {
          if (time == 0) {
            // 清除定时器和复原按钮
            clearInterval(timer);
            btn.disabled = false;
            btn.innerHTML = '获取验证码';
            time = 60;  // 每次点击都需要重新开始计时
          } else {
            btn.innerHTML = '剩余' + time + '秒';
            time--;
          }
        }, 1000);
      }
    }
    )
  </script>
</body>

</html>

http://www.niftyadmin.cn/n/5067221.html

相关文章

python写一个开机启动的选项

创建一个Python脚本&#xff0c;以便用户可以选择在开机时启动它&#xff0c;可以使用pyautogui库来创建一个简单的交互式界面&#xff0c;其中用户可以选择是否将程序添加到开机启动项中 import pyautogui import osdef add_to_startup():# 提示用户选择是否要在开机时启动程序…

Llama2-Chinese项目:8-TRL资料整理

TRL&#xff08;Transformer Reinforcement Learning&#xff09;是一个使用强化学习来训练Transformer语言模型和Stable Diffusion模型的Python类库工具集&#xff0c;听上去很抽象&#xff0c;但如果说主要是做SFT&#xff08;Supervised Fine-tuning&#xff09;、RM&#x…

Apollo Planning2.0决策规划算法代码详细解析 (2): vscode gdb单步调试环境搭建

前言: apollo planning2.0 在新版本中在降低学习和二次开发成本上进行了一些重要的优化,重要的优化有接口优化、task插件化、配置参数改造等。 GNU symbolic debugger,简称「GDB 调试器」,是 Linux 平台下最常用的一款程序调试器。GDB 编译器通常以 gdb 命令的形式在终端…

优思学院|六西格玛将烹饪和美味提升至极致

最近&#xff0c;我们曾提到一个美国男子如何利用六西格玛来控制糖尿病。这表明六西格玛逐渐被认为是一个不仅可以在工作场所之外使用&#xff0c;尤其不仅限于制造业的系统。 六西格玛的核心理念是改进过程的质量&#xff0c;从而改善最终结果。如果你做了晚餐或尝试了一道新…

动态规划五步曲

一、什么是动态规划五步曲 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 确定递推公式 dp数组如何初始化 确定遍历顺序 举例推导dp数组 二、 个人赏析 这是我从某网站上看到的关于动态规划的教学系列。作为应试来说&#xff0c;这个 提纲确实不错&#xff0c;…

【1++的刷题系列】之双指针

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的刷题系列】 文章目录 一&#xff0c;什么是双指针二&#xff0c;相关例题例一例二例三例四例五 一&#xff0c;什么是双指针 常见的双指针有两种形式&#xff1a;一种是对撞指针&#xff08…

【成像光敏描记图提取和处理】成像-光电容积描记-提取-脉搏率-估计(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

python实现进制转换

在Python中,可以编写一个函数来将一个数从一个进制转换到另一个进制。以下是一个简单的实现示例: def convert_base(num, base_from, base_to):"""将一个数从一个进制转换到另一个进制。参数:num: 需要转换的数base_from: 原始进制 (必须是2到36)base_to: 目…