美文网首页
js实现发送验证码的倒计时功能

js实现发送验证码的倒计时功能

作者: 7天苹果 | 来源:发表于2017-07-17 20:49 被阅读196次
    • 要求:实现一个验证码发送倒计时的功能
    • 实现效果:
    未点击 点击后
    1. 使用setInterval函数实现
      功能:按照指定的周期(以毫秒计)来调用函数或计算表达式。
      语法:setInterval(code,millisec)
      参数:code: 在定时时间到时要执行的JavaScript代码串。
      millisec: 设定的定时时间,用毫秒数表示。
      返回值:定时器的ID值,可用于clearInterval()方法停止指定的定时器。
      注:
      setInterval()方法会不停地调用函数,直到用clearInterval()终止定时或窗口被关闭。
      代码:
    <input type="button" id="btn" value="免费获取验证码" onclick = "time(this)"/>  
    <script type="text/javascript">  
    const wait=60;  
      function time(o) {  
            if (wait == 0) {  
                o.removeAttribute("disabled");  //倒计时完成之后可以再次点击          
                o.value="免费获取验证码";  
                wait = 60;  
              clearInterval(myTime);
            } else {  
                o.setAttribute("disabled", true); //倒计时过程中不允许再次点击
                var myTime = setInterval(function() {  
                o.value="重新发送(" + wait-- + ")";  
                }, 1000);  
            }  
        }
    </script>  
    
    1. 使用setTimeout函数实现
      功能:setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。
      语法:setTimeout(code,millisec)
      参数:code: 在定时时间到时要执行的JavaScript代码串。
      **millisec: **推迟执行的毫秒数。
      代码:
    <input type="button" id="btn" value="免费获取验证码" onclick = "time(this)"/>  
    <script type="text/javascript">  
    const wait=60;  
    function time(o) {  
            if (wait == 0) {  
                o.removeAttribute("disabled");            
                o.value="免费获取验证码";  
                wait = 60;  
            } else {  
                o.setAttribute("disabled", true);  //倒计时过程中不允许再次点击
                o.value="重新发送(" + wait + ")";  
                wait--;  
                setTimeout(function() {  
                    time(o);
                },  
                1000)  
            }  
        }  
    </script>  
    

    相关文章

      网友评论

          本文标题:js实现发送验证码的倒计时功能

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