1

我只想让 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);
}
}
4

3 回答 3

2

您在 上指定功能window.onloadinput 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)及其所有属性。在上述情况下,它是一个按钮。您需要使用其所需的属性来访问所需的属性 在此处输入图像描述

在此处阅读更多相关信息。

于 2013-07-22T09:37:28.390 回答
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);
于 2013-07-22T09:33:14.227 回答
0

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

function calculate(){
   var x=document.getElementById("x");
   if(x==5){
      alert(x);
   }
}
window.onload = calculate;
于 2013-07-22T09:31:24.613 回答