1

getElementById を機能させたいだけですが、クロムを使用してこのエラーが発生します。

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

最初に関数を定義してから、onload を使用する必要があります。

function calculate(){
   var x=document.getElementById("x");
   if(x==5){
      alert(x);
   }
}
window.onload = calculate;
于 2013-07-22T09:31:24.613 に答える
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 に答える