jQuery发送验证码倒计时

本文介绍了如何利用jQuery在Flask环境中实现验证码发送后的倒计时功能。首先,获取当前的发送验证码按钮并禁用它,然后在外部设置倒计时逻辑。通过`setInterval`方法开始倒计时,更新按钮文本以显示剩余时间。当倒计时结束,解除按钮的禁用状态,恢复原始文本,并清除定时器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 获取当前的按钮

$(function()){
    $("#send-btn").click(function(event)){
        event.perventDefault();

        // 获取获取验证的按钮
        var self = $(this);
        // ...
    }
};

2. 设置获取验证码的倒计时

理一下思路

  1. 发送成功, disabled禁用按钮
  2. 局外设置按钮倒计时var timeCount = 60;
  3. 使用setInterval(func,millisec) 方法
  • 开始倒计时timeCount --
  • 设置按钮提示倒计时文本self.text()
  1. 判断 timeCount <= 0:
  • 移除禁用disabled属性
  • 恢复按钮原始文本
  • 清除Interval(clearInterval())
// 1. 
self.attr("disabled", 'disabled');
// 2.
var timeCount = 60;
// 3.
var timer = setInterval(function () {
    timeCount --;
    self.text(timeCount+"s 后重新发送");
    // 4.
    if (timeCount <= 0){
        self.removeAttr("disabled");
        self.text("获取验证码");
        clearInterval(timer)
    }
}, 1000);

源代码

$(function () {
    $("#send_tel_captcha").click(function (event) {
        event.preventDefault();

        var tel = $("input[name=tel]").val();
        var self = $(this);

        if(!(/^1[34578]\d{9}$/.test(tel))){
            xtalert.alertInfo("请输入正确的手机号码");
            return;
        }

        jajax.get({
            "url": "/c/sms_captcha/?tel="+tel,
            "success": function (data) {
                if (data['code'] == 200){
                    xtalert.alertSuccessToast("验证码发送成功, 请注意查收");
                    self.attr("disabled", 'disabled');
                    var timeCount = 60;
                    var timer = setInterval(function () {
                        timeCount --;
                        self.text(timeCount+"s 后重新发送");
                        if (timeCount <= 0){
                            self.removeAttr("disabled");
                            self.text("获取验证码");
                            clearInterval(timer)
                        }
                    }, 1000);
                }else{
                    xtalert.alertInfo(data['message'])
                }
            },
            'fail': function (error) {
                xtalert.alertNetworkError()
            }
        })

    });
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值