美文网首页
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