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。
希望有帮助。
编辑:变量inp和conv可能是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>
写起来更长,是的,但充其量是。