(入门级)JavaScript发送验证码按钮,一分钟内不能重复发送,前端计时器

昨天遇到了验证码发送,发出来给新人借鉴一下,觉得有用的话点个赞哦
(前几天修改的时候使用了错误的代码,在js中选择按钮元素时用的是$("#id"),应为$("#bt")(已改正),十分抱歉!)

首先body中给按钮加一个id方便取用

<input type="button" value="发送验证码" id="bt" onclick="getCode()">

js中:

//设置一个发送验证码的冷却时间
    let cd = 0;
    //用来保存当前计时器编号
    let timerId = 0;
    //发送验证码的按钮
    let bt = $("#bt");
    //保存css设定的颜色
    let bgColor = bt.css("background-color")
    // alert(bgColor)

    function getCode() {
        if(cd===0) {

            //cd为0,向服务器发一送请求(已省略!!!)

            //然后将cd改为60(一分钟内不能再次发送)
            cd = 60
            //设置一个计时器,每1000毫秒执行一次设置冷却时间的函数
            timerId = setInterval(setTime, 1000)
            //设置计时器后弹出一下它的编号(不必要)
            // alert(timerId)
            //修改按钮背景色
            bt.css("background-color","#ccc")
        }else{
            alert("请在"+cd+"秒后重试")
        }
    }

    function setTime() {
        //冷却时间未结束
        if(cd>0){
            //冷却时间减一秒
            cd --
            //将按钮的文字修改(在后面附带剩余冷却时间秒数)
            bt.val("发送验证码("+cd+")")
        }else{
            //冷却时间为0,清除当前计时器
            clearTimeout(timerId)
            //恢复按钮显示文字
            bt.val("发送验证码")
            //恢复按钮背景色
            bt.css("background-color",bgColor)
        }
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值