我是一个javascript初学者,我无法在浏览器上运行此代码

时间:2013-07-22 09:26:09

标签: javascript getelementbyid

我只是想让getElementById工作,但我可以,我使用chrome得到这个错误:

Uncaught ReferenceError: calculate is not defined 

这是html:

<html>
<body>


<table>
<tr><td>Input the test variable:</td>
<td><input id="x" onchange="calculate();"></td></tr>

<tr><th>Calculate the number</th>
<td><button onclick="calculate();">Calculate</button></td></tr>
</table>


<script src="test1javascript.js"></script>

</body>
</html>

这是javascript:

window.onload=function calculate(){
var x=document.getElementById("x");
if(x==5){
alert(x);
}
}

3 个答案:

答案 0 :(得分:2)

您正在window.onload指定功能。此外,您将相同的功能绑定到input onchange以及button onclick。而是将函数声明如下,并将函数仅绑定到button onclick。另请注意.value

之后的document.getElementById("x")
function calculate(){
  var x=document.getElementById("x").value;
  if(x==5){
    alert(x);
  }
}

最好还在<head></head>中添加脚本文件并指定type属性:

<html>
  <head>
    <script src="test1javascript.js" type="text/javascript"></script>
  </head>
  <body>
    <table>
       <tr><td>Input the test variable:</td>
       <td><input id="x" onchange="calculate();"></td></tr>
       <tr><th>Calculate the number</th>
       <td><button onclick="calculate();">Calculate</button></td></tr>
    </table>
  </body>
</html>

document.getElementById会返回对该元素的引用(顾名思义为getElement,但不包含其value)及其所有属性。在上面的例子中它是一个按钮。您需要使用其所需的属性来访问所需的属性 enter image description here

详细了解here

答案 1 :(得分:0)

首先应该定义你的函数,然后使用onload:

function calculate(){
   var x=document.getElementById("x");
   if(x==5){
      alert(x);
   }
}
window.onload = calculate;

答案 2 :(得分:0)

您必须自己定义calculate

function calculate() {
    // Added .value because you want the content and not the object itself
    var x = document.getElementById("x").value;
    if (x == 5) {
        alert(x);
    }
}

然后将其添加到window.onload事件:

window.addEventListener('load', calculate);