欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript 实现获取验证码倒计时效果

程序员文章站 2022-06-28 12:53:00
要求:点击按钮后,该按钮60秒之内不能再次点击,防止重复发送短信实现思路:按钮点击之后,禁用disabled为true同时按钮里面的内容会变化,button里面的内容通过innerHTML修改里面秒数是有变化的,因此需要用到定时器定义一个变量,在定时器里面,不断递减如果变量为0说明时间到了,需要停止定时器,重新恢复变量,并且复原按钮初始状态代码实现:内容:手机号码:

要求:

点击发送之后,按钮禁用,并出现倒计时。设置为5秒倒计时。
JavaScript 实现获取验证码倒计时效果
5秒过后,按钮复原,可以重新点击发送
JavaScript 实现获取验证码倒计时效果

实现思路:

  1. 按钮点击之后,禁用disabledtrue
  2. 同时按钮里面的内容会变化,button里面的内容通过innerHTML修改
  3. 里面秒数是有变化的,因此需要用到定时器
  4. 定义一个变量,在定时器里面,不断递减
  5. 如果变量为0说明时间到了,需要停止定时器,重新恢复变量,并且复原按钮初始状态

代码实现:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    手机号码: <input type="text"> <button>发送</button>
    <script>
        // 按钮点击之后,会禁用 disabled 为true 
        // 同时按钮里面的内容会变化, 注意 button 里面的内容通过 innerHTML修改
        // 里面秒数是有变化的,因此需要用到定时器
        // 定义一个变量,在定时器里面,不断递减
        // 如果变量为0 说明到了时间,我们需要停止定时器,并且复原按钮初始状态
        var btn = document.querySelector('button');
        var time = 5; // 定义剩下的秒数
        btn.addEventListener('click', function() {
            btn.disabled = true;
            var timer = setInterval(function() {
                if (time == 0) {
                    // 清除定时器和复原按钮
                    clearInterval(timer);
                    btn.disabled = false;
                    btn.innerHTML = '发送';
                    time = 5; // 重新赋值时间变量
                } else {
                    btn.innerHTML = time + '秒后可再次发送';
                    time--;
                }
            }, 1000);
        });
    </script>

</body>

</html>

本文地址:https://blog.csdn.net/Jack_lzx/article/details/109270555