javascript没有在输入框中读取输入的值

时间:2014-04-30 19:19:03

标签: javascript html input

我无法获得功能AreaT()来验证并验证输入框中输入的值作为三角形区域的答案。 我一直在"错误"即使是正确答案的消息。 我究竟做错了什么? 感谢您抽出宝贵时间检查我的代码。

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

2 个答案:

答案 0 :(得分: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");
}
}

添加已经提到的内容,您还需要向area元素添加.value。我还将AREA的输入类型更改为number

答案 1 :(得分:1)

getElementById("area")更改为document.getElementById("area").value。您还需要从area函数中分配AreaT(),否则它将无法获得用户输入的值。

此外,您的javascript需要低于这些表单元素,否则它无法“看到”它们,您将获得未定义的值。