2012-06-30 38 views
0

我想讓用戶把東西放到文本區域,輸出應該是他重寫x次的時間,但是我得到一個錯誤「document.forme is undefined」。爲什麼會給出「未定義」的錯誤?

你能幫我理解爲什麼它是未定義的嗎?

我的代碼:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>input home work</title> 
<script type="text/javascript"> 


var help= document.forme.tryout.value; 

for (x=1; x<=10;x++){ 

function numberCheak(){ 

    document.write("this is"+" "+help++); 

    } 


} 
    </script> 


    </head> 

<body> 
<form name="forme"> 

<input name="tryout" type="text" /> 
    <input type="button" value="click me" onClick="numberCheak();"/> 


</form> 

</body> 
</html> 
+0

而來的HTML表單這是功課?如果是這樣,鼓勵「家庭作業」標籤。 – harpo

回答

-2

形式存儲在收集和可以這樣訪問:

var form = document.forms[i];var form = document.forms[name];

在你的情況,i是0和name是印版。

+1

他使用的方法'document.forme.tryout.value'實際上是有效的Javascript來獲取表單值。你可以嘗試一下。在他的情況下未定義的原因是因爲腳本在表單加載到頁面之前正在運行。 –

-2

也許你應該試試document.getElementsByName("forme")[0]而不是document.forme

+0

他使用的方法'document.forme.tryout.value'實際上是有效的Javascript來獲取表單值。你可以嘗試一下。在他的情況下未定義的原因是因爲腳本在表單加載到頁面之前正在運行。 –

3

好的,你有幾個問題。首先,您正試圖訪問尚不存在的表單元素:腳本位於表單元素之上,因此當您嘗試獲取表單時,該表單不存在。如果將腳本移動到頁面的底部,它會更好。

二,循環應該在函數內部,而不是纏繞函數。

三,document.write有奇怪的副作用,並導致文檔被重寫,並會停止正確繼續腳本。

這裏是我修改後的腳本

function numberCheak() { 
    var help = document.forme.tryout.value; 
    for (var x = 1; x <= 10; x++) { 
     document.getElementById("output").innerHTML += help; 
    } 
} 

,並與它

<form name="forme" id="forme"> 
    <input name="tryout" type="text" /> 
    <input type="button" value="click me" onclick="numberCheak();" /> 
    <span id="output"></span> 
</form> 

您可以see it in action on jsFiddle.

相關問題