发送短信(js小案例)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 按钮点击之后,会禁用 disabled 为 true
  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>发送短信</title>
</head>

<body>
    <form action="">
        <input type="text" class="xzm">
        <button type="submit" class="submit">发送</button>
    </form>

    <script>
        var submit = document.querySelector('.submit');
        console.log(submit);

        submit.addEventListener('click', function() {
            submit.disabled = true;

            var count = 60;
            downCount();
            var timer1 = setInterval(downCount, 1000)

            function downCount() {
                submit.innerHTML = '还剩' + count + '秒';
                count--;
            }

            var timer2 = setTimeout(function() {
                clearInterval(timer1);
                submit.disabled = false;
                submit.innerHTML = '发送';
            }, 60000)
        })
    </script>
</body>

</html>

改进了一下用一个计时器

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

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

<body>
    <form action="">
        <input type="text" class="xzm">
        <button type="submit" class="submit">发送</button>
    </form>

    <script>
        var submit = document.querySelector('.submit');
        console.log(submit);

        submit.addEventListener('click', function() {
            submit.disabled = true;

            var count = 60;
            downCount();
            var timer1 = setInterval(downCount, 1000)

            function downCount() {
                submit.innerHTML = '还剩' + count + '秒';
                count--;
                if (count == 0) {
                    clearInterval(timer1);
                    submit.disabled = false;
                    submit.innerHTML = '发送';
                }
            }
        })
    </script>
</body>

</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章