搜索

首页  >  问答  >  正文

javascript - 验证码倒计时

<input type="button" id="btn" value="免费获取验证码" onclick="settime(this)" /> 
<script type="text/javascript"> 
var countdown=60; 
function settime(val) { 
if (countdown == 0) { 
val.removeAttribute("disabled");  
val.value="免费获取验证码"; 
countdown = 60; 
} else { 
val.setAttribute("disabled", true); 
val.value="重新发送(" + countdown + ")"; 
countdown--; 
} 
setTimeout(function() { 
settime(val) 
},1000) 
} 
</script> 

麻烦问下这个代码使用后当时间超时时,方法会自动循环,但是删除setTimeout方法后,代码功能无法实现,请问如何解决?

阿神阿神2747 天前583

全部回复(1)我来回复

  • PHPz

    PHPz2017-05-19 10:35:06

    添加一个return ;就可以了。我试了下。
    <input type="button" id="btn" value="免费获取验证码" onclick="settime(this)" />
    <script type="text/javascript">

    var countdown=60; 
    function settime(val) { 
    if (countdown == 0) { 
        val.removeAttribute("disabled");  
        val.value="免费获取验证码"; 
        countdown = 60; 
        return ; // 结束循环
    } else { 
        val.setAttribute("disabled", true); 
        val.value="重新发送(" + countdown + ")"; 
        countdown--; 
    } 
    setTimeout(function() { 
        settime(val) 
        },1000) 
    } 

    </script>

    回复
    0
  • 取消回复