JavaScript中的错误是什么 我已经定义了函数,但它找不到定义



hat 是我已经定义了函数的错误,但它找不到定义,请帮助

< script language = "JavaScript"
type = "text/javascript"
src = "JavaScript.js" >
  var inp = document.getElementById('inp');
var conv = document.querySelectorAll('conv');
function convWt() {
  var val = inp.value;
  conv[0].value = parseFloat(val * 1000);
  conv[1].value = parseFloat(val * 2.2046);
  conv[2].value = parseFloat(val * 1000000);
  conv[3].value = parseFloat(val * 0.0011023);
  conv[4].value = parseFloat(val * 35.274);
} <
/script>
<center>
  <h1>Weight Converter</h1>
</center>
<center>
  <p>Welcome To Online Weight Converter</p>
</center>
<center><label>Weight In Kg:</label>
  <form id="myForm">
    <input id="inp" type="number" />
    <input type="button" value="convert" onclick="convWT()" />
    <table>
      <tr>
        <td>Weight In Grams:</td>
        <td><input id="conv" /></td>
      </tr>
      <tr>
        <td>Weight In Pound</td>
        <td><input id="conv" /></td>
      </tr>
      <tr>
        <td>MiliGram:</td>
        <td><input type="text" id="conv" /></td>
      </tr>
      <tr>
        <td>Us Ton:</td>
        <td><input type="text" id="conv" /></td>
      </tr>
      <tr>
        <td>Ounces:</td>
        <td><input id="conv"></td>
      </tr>
      <tr>
        <td><input type="button" value="Rest Form" onclick="document.getElementById('myForm').reset()" /></td>
      </tr>
    </table>
  </form>
  <p><b/> You Can Press Reset Button For Another Conversion
  </p>
</center>
</body>
</html>

上面的代码有什么错误?错误是未捕获的引用

帽子是我已经定义了函数的错误,但它找不到防御,请帮助

您的onClick由于拼写错误而引用了一个不存在的函数,请查看ref 'convWT'与func def 'convWt'的情况

您正在尝试在已经加载 javascript 文件的脚本标记中执行 javascript。这是不可能的。尝试加载 js 文件,并在另一个脚本标记中使用您的代码。像这样:

<script language="JavaScript" type="text/javascript" src="JavaScript.js"></script>
<script>
  var inp = document.getElementById('inp');
var conv = document.querySelectorAll('conv');
function convWt() {
  var val = inp.value;
  conv[0].value = parseFloat(val * 1000);
  conv[1].value = parseFloat(val * 2.2046);
  conv[2].value = parseFloat(val * 1000000);
  conv[3].value = parseFloat(val * 0.0011023);
  conv[4].value = parseFloat(val * 35.274);
} 
</script>

同样在你的HTML部分,你调用convWT((,但函数名称是convWt((,没有大写的T。

希望有帮助。

编辑:变量inpconv可能是null/undefined,因为在执行js代码时没有加载你的DOM。"最简单"的方法是使用jQuerys ready函数。它将等到 DOM 被渲染并执行你的代码。仅供参考:https://learn.jquery.com/using-jquery-core/document-ready/

> 正如我所说,convWt()convWT() 不同。
然后,您永远不应该对每个输入给予相同的id
尝试将其设置为:

var inp = document.getElementById('inp');
var convGram = document.getElementById('convGram');
var convPound = document.getElementById('convPound');
var convMiliGram = document.getElementById('convMiliGram');
var convTon = document.getElementById('convTon');
var convOunce = document.getElementById('convOunce');
function convWt() {
  var val = inp.value;
  
  convGram.value = parseFloat(val * 1000);
  convPound.value = parseFloat(val * 2.2046);
  convMiliGram.value = parseFloat(val * 1000000);
  convTon.value = parseFloat(val * 0.0011023);
  convOunce.value = parseFloat(val * 35.274);
}
<center>
  <h1>Weight Converter</h1>
</center>
<center>
  <p>Welcome To Online Weight Converter</p>
</center>
<center><label>Weight In Kg:</label>
  <form id="myForm">
    <input id="inp" type="number" />
    <input type="button" value="convert" onclick="convWt()" />
    <table>
      <tr>
        <td>Weight In Grams:</td>
        <td><input id="convGram" /></td>
      </tr>
      <tr>
        <td>Weight In Pound</td>
        <td><input id="convPound" /></td>
      </tr>
      <tr>
        <td>MiliGram:</td>
        <td><input type="text" id="convMiliGram" /></td>
      </tr>
      <tr>
        <td>Us Ton:</td>
        <td><input type="text" id="convTon" /></td>
      </tr>
      <tr>
        <td>Ounces:</td>
        <td><input id="convOunce"></td>
      </tr>
      <tr>
        <td><input type="button" value="Rest Form" onclick="document.getElementById('myForm').reset()" /></td>
      </tr>
    </table>
  </form>
  <p><b/> You Can Press Reset Button For Another Conversion
  </p>
</center>

写起来更长,是的,但充其量是。

最新更新