发送短信(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>
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值