首页 > Web开发 > 详细

JS 验证码60秒倒计时

时间:2015-09-29 01:12:31      阅读:427      评论:0      收藏:0      [点我收藏+]

html代码:

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 3 <title>获取验证码倒计时</title>
 4 <style type="text/css">
 5 a{text-decoration: none;color:#fff;}
 6 .box{width:330px;height:200px;}
 7 .btn{display: inline-block;width:120px;height:22px;text-align:center;line-height: 22px; }
 8 .btn-on{background-color: #91C2EC;}
 9 .btn-off{background-color: #B5B7BA;}
10 </style>
11 </head>
12     
13 <body>
14     <div class="box">
15         <input type="text">
16         <a id="btn" class="btn btn-on" href="javaScript:void(0);">获取验证码</a>
17     </div>
18 </body>

JS代码:

(function(){
    var btn = document.getElementById("btn");
    var handler = function(){
        doClick();
        removeEvent(btn,‘click‘,handler);//取消绑定该事件
    }
    
    function addEvent(obj,type,handler){
        if(obj.addEventListener){
            obj.addEventListener(type,handler,false);
        }else if(obj.attachEvent){
            obj.attachEvent(‘on‘+type,handler);
        }
    }

    function removeEvent(obj,type,handler){
        if(obj.removeEventListener){
            obj.removeEventListener(type,handler,false);
        }else if(obj.detachEvent){
            obj.detachEvent("on"+type,handler);
        }
    }

    function doClick(){
        removeClass(btn,‘btn-on‘);
        addClass(btn,‘btn-off‘);
        btn.innerHTML="60s后重新获取";
        var clickTime = new Date().getTime();
        var Timer = setInterval(function(){
            var nowTime = new Date().getTime();
            var    second  = Math.ceil(60-(nowTime-clickTime)/1000);
            if(second>0){
                btn.innerHTML = second+"s后重新获取";
            }else{
                clearInterval(Timer);
                removeClass(btn,‘btn-off‘);
                addClass(btn,‘btn-on‘);
                btn.innerHTML = "获取验证码";
                addEvent(btn,"click",handler);
            }
        },1000);
    }


    function hasClass(obj, cls) {  
        return obj.className.match(new RegExp(‘(\\s|^)‘ + cls + ‘(\\s|$)‘));  
    }        
    function addClass(obj, cls) {  
        if (!hasClass(obj, cls)) obj.className += " " + cls;  
    }        
    function removeClass(obj, cls) {  
        if (hasClass(obj, cls)) {  
            var reg = new RegExp(‘(\\s|^)‘ + cls + ‘(\\s|$)‘);  
            obj.className = obj.className.replace(reg, ‘ ‘);  
        }  
    }
    
    addEvent(btn,"click",handler);  

})();

 

 

JS 验证码60秒倒计时

原文:http://www.cnblogs.com/NameBU/p/4845334.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!