美文网首页
JS实现点击之后60秒后才可以再次点击-适用获取验证码发送短信等

JS实现点击之后60秒后才可以再次点击-适用获取验证码发送短信等

作者: fnbj | 来源:发表于2020-11-09 16:11 被阅读0次

1. 问题场景

获取短信验证码发送短信后,将按钮置灰60秒后可以发送下一次验证码。

2. 示例代码

<!DOCTYPE HTML>
<html>
<head>
    <title>JS实现点击之后60秒后才可以再次点击</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <style type="text/css">
        .cen {
            text-align: center
        }
    </style>
</head>
<body>
    <div class="cen">
    <!-- button获取 -->
    <!-- <button id='testcc'>免费获取验证码</button> -->
    <a style="text-decoration:underline;">
        <span id="test" onclick="sendsms(this)" style="font-size:12px;color:#0000FF" mce_style="font-size:12px">发送手机验证码</span>
    </a>

    <script type="text/javascript">
        var waitTime = 60;
        function sendsms(e){
            /*发送验证码功能*/
            //若发送验证码成功,则调用倒计时函数
            time(e);
        }
        function time(ele) {
            if (waitTime == 0) {
                //button可以使用disabled属性
                ele.disabled=false;
                //span等需要设置onclick方法
                ele.setAttribute("onclick", "sendsms(this)");
                ele.innerHTML = "发送手机验证码";
                waitTime = 60;// 恢复计时
            } else {
                //button可以使用disabled属性
                ele.disabled=true;
                //span等需要去掉onclick方法
                ele.removeAttribute("onclick");
                ele.innerHTML = waitTime + "秒后可以重新发送";
                waitTime--;
                setTimeout(function() {
                    time(ele)// 关键处-定时循环调用
                }, 1000)
            } 
        }
    </script>
</body>
</html>

注意:button设置不可用时可以使用disabled属性,span等设置不可用时需要设置或取消onclick事件。

相关文章

网友评论

      本文标题:JS实现点击之后60秒后才可以再次点击-适用获取验证码发送短信等

      本文链接:https://www.haomeiwen.com/subject/cpolbktx.html