var times=11;
function showBtn()
{
    
var btnObj=document.getElementById('btnReg1');
while(times>0)
{
times--;
btnObj.value="开始("+times+")";
window.setTimeout("showBtn()", 1000);
return false;
}
}我用按钮调用这个 方法 执行正常  可以倒数 如果以上方法中 不加return false 则直接显示开始(0);
请问这是为什么 ? return false 在这里起什么作用呢?

解决方案 »

  1.   

    你在调用该方法的时候是不是写的return showBtn() ?
      

  2.   


     var times = 11;
            function showBtn() {
                var btnObj = document.getElementById('btnReg1');
                if (times > 0) {
                    times--;
                    btnObj.value= "开始(" + times + ")";
                    window.setTimeout("showBtn()", 1000);
                }
            }
            showBtn();
            function test() {
                for (var i = 0; i < 5; i++) {
                    alert(i);
                    return false;
                }
            }
            test();
      

  3.   

    <input id="btnReg1" type="button" value="开始" onclick="showBtn()" />
    <script type="text/javascript">
    var times = 11;
    function showBtn() {
    var btnObj = document.getElementById('btnReg1');
    if (times > 0) {
    times--;
    btnObj.value = "开始(" + times + ")";
    window.setTimeout("showBtn()", 1000);
    }
    }
    </script>
    return false;
    return true;
    return;
    效果一样,都是退出函数和循环
    那这个循环就没有什么意义,只取到一个if的作用。
      

  4.   

    在循环里面return,函数直接返回并退出循环。
    //这里一个循环下来还极大可能没等到1秒再次调用方法showBtn的时候times就已经是0了,加了return就是做了一次循环方法就返回了。
    while(times>0)
    {
    times--;
    btnObj.value="开始("+times+")";
    window.setTimeout("showBtn()", 1000);
    return false;

      

  5.   

    补充下 我调用的时候就是直接调用方法的<input type="button" value="123" onclick="showBtn();" id="btnReg1" /> 这是调用代码
      

  6.   

    确实是,你加的return false只是退出while 循环用的
    function showBtn()
    {
       
    var btnObj=document.getElementById('btnReg1');
    while(times>0)
    {
    times--;
    btnObj.value="开始("+times+")";
    window.setTimeout("showBtn()", 1000);
    return false;
    }
    } 这段代码,你可以改写成这样
    function showBtn()
    {
       
    var btnObj=document.getElementById('btnReg1');times--;
    btnObj.value="开始("+times+")";
    if ( times >=0 ) {
    window.setTimeout("showBtn()", 1000);}
    } please have a try~