简单的javascript无法正常工作 - 令人沮丧!

时间:2011-04-11 11:51:12

标签: javascript html

有人可以请我帮这个简单的倒数计时器工作,firebug抱怨:document.counter未定义

<script> 
<!-- 
// 
 var milisec=0 
 var seconds=30 
 document.counter.d2.value='30' 

function display(){ 
 if (milisec<=0){ 
    milisec=9 
    seconds-=1 
 } 
 if (seconds<=-1){ 
    milisec=0 
    seconds+=1 
 } 
 else 
    milisec-=1 
    document.counter.d2.value=seconds+"."+milisec 
    setTimeout("display()",100) 
} 
display() 
--> 
</script> 


<form name="counter"><input type="text" size="8" 
name="d2"></form> 

4 个答案:

答案 0 :(得分:4)

确实,document.counter 不存在,因为在加载HTML DOM之前调用了脚本。

您需要将JS放在一个将被调用onload的函数中。

而不是调用display()将其放在脚本的底部:

window.onload = display;

此外,JS代码至少10年内不需要<!-- -->条评论......

答案 1 :(得分:0)

将表单放在脚本之前......

答案 2 :(得分:0)

要么在页面末尾有脚本,要么:

window.onload = function() {
   var milisec=0;
    var seconds=30 ;
    document.forms["counter"].elements["d2"].value='30';
}

答案 3 :(得分:0)

您可能希望转移到JQuery以帮助解决跨浏览器问题 JQuery $(document).ready()