2014-04-30 223 views
-2

我無法獲得功能AreaT()來驗證和驗證輸入框中輸入的值作爲三角形區域的答案。 即使對於正確的答案,我仍然收到「錯誤」的信息。 我在做什麼錯? 感謝您花時間檢查我的代碼。JavaScript不能讀取輸入框中的輸入值

<html> 
<head> 
<script> 

var height = Math.floor(Math.random()*20 +1); 

var base = Math.floor(Math.random()*30 +2); 
var area = getElementById("area"); 

function AreaT(){ 

document.getElementById('height').value = height; 
    document.getElementById('base').value = base; 
if(area== 1/2 * base * height){ 
document.write("correct") 
} 
else{ 
document.write("wrong"); 
} 
} 
</script> 

    </head> 
    <body> 
<form> 
<h2>HEIGHT:</h2><input type="button" size="20" id="height"/> 
<h2>BASE: </h2><input type="button" size="20" id="base"/> 
<h2>AREA: </h2>Enter The Area here:<input type="text" size="20" id="area"/> 

<input type="button" size="20" value = "Calculate" onClick ="AreaT()"/> 
</form> 



</body> 


</html> 
+4

它是'document.getElementById(「area」)''getElementById(「area」)',它應該在頁面上存在該元素之後調用。如你所知,它沒有定義。 – j08691

回答

1

更改getElementById("area")document.getElementById("area").value。您還需要從AreaT()函數中分配area,否則它不會獲得用戶輸入的值。

此外,您的JavaScript需要低於這些表單元素,否則無法「看見」它們你會得到未定義的值。

+0

更多的問題比... – epascarello

+0

@epascarello是啊,但那至少會解決這個問題... – ElGavilan

+0

謝謝ElGavilan。你是對的。我將下面的JavaScript放在下面,並且在整個代碼的上方加上JL的建議很好地工作。 – user3308574

2

試試這個:

HTML

<body> 
<h2>HEIGHT:</h2><input type="button" size="20" id="height"/> 
<h2>BASE: </h2><input type="button" size="20" id="base"/> 
<h2>AREA: </h2>Enter The Area here:<input type="number" size="20" id="area"/> 

<input type="button" size="20" value = "Calculate" onClick ="AreaT()"/> 
</body> 

的Javascript(放<header>標籤)

var height = Math.floor(Math.random()*20 +1); 
var base = Math.floor(Math.random()*30 +2); 

document.getElementById('height').value = height; 
document.getElementById('base').value = base; 



function AreaT(){ 
var area = document.getElementById("area").value; 
if(area == 1/2 * base * height){ 
document.write("correct") 
} 
else{ 
document.write("wrong"); 
} 
} 

添加到什麼已經提到的,你需要一個.value添加到區域元素也是如此。我還將輸入類型的AREA更改爲number

+0

謝謝JL.thanks花時間修復我的代碼。它現在有效。 – user3308574

+0

@ user3308574只需提醒一下,您可以點擊此答案上的複選標記,將您的問題標記爲已解決! – JLewkovich