javaScript实现同意等待——心得

javaScript功能描述:本程序实现在同意某某协议页面对同意按钮进行十秒钟的禁用,同时在按钮的Value显示倒计时。

正确源程序如下:

<script type="text/javascript">
        var lastTime = 3;
            function abc() {
            var btnReg = document.getElementById("btnReg");
            if (!btnReg) { return; }
            if (lastTime <= 0) {
                btnReg.value = "同意";
                btnReg.disabled = "";
                clearInterval("TimeId");
            }
            else {
                btnReg.value = "还剩下" + lastTime + "秒";
                lastTime--;
            }

        }
        var TimeId = setInterval("abc()", 1000);
    </script>

我把第四行的 var btnReg = document.getElementById("btnReg")定义为全局变量btnReg = document.getElementById("btnReg");
并且放到函数abc()之外,程序实现不了功能了。

原因如下:浏览器解析Html页面是从上到下,解析到btnReg = document.getElementById("btnReg")时,id为btnReg的按钮还没被解析出来,所以全局变量btnReg的值为为定义,

又因为只执行了一次所以程序实现不了功能了,而正确的源程序每隔一秒就去取一次,等到button按钮解析出来后就可以去到值,程序就可以实现功能了。

原文地址:https://www.cnblogs.com/605395451/p/1923146.html