2011-04-11 68 views
0

有人可以幫我弄這個簡單的倒數計時器工作,Firebug是抱怨:document.counter未定義簡單的JavaScript不工作 - 令人沮喪!

<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> 
+0

您沒有設置窗體的ID標籤,你剛纔設置的名稱。 – 2011-04-11 11:53:21

+0

這就足夠了,代碼也可以和名字一起使用。 – 2011-04-11 11:55:31

回答

4

確實,document.counter存在,因爲你的腳本正在HTML DOM之前調用被加載。

你需要把你的JS裏面的一個函數,將被調用onload

而不是調用display()的把這個在你的腳本的底部:

window.onload = display; 

此外,<!---->的意見沒有被周圍所需要的JS代碼爲至少10年......

+0

您可能還會發現以下討論有用:[最佳實踐:通過HTML id或名稱屬性訪問表單元素](http://stackoverflow.com/questions/2435525/best-practice-access-form-elements-by-html -id-或名稱屬性)? – 2011-04-11 12:33:32

0

將該表格放置在腳本之前...

0

要麼在腳本結尾處有腳本,要麼:

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