我有这个简单的示例代码,3个文本框。如果我在前两个中写入数字,它会将它们相乘并将结果写入第三个数字。但是,如果我运行代码,我会收到一条错误消息:“ReferenceError:calc未定义”。我错过了什么吗?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script language="text/javascript">
function calc()
{
var txt1 = (float) document.getElementById('text1').value;
var txt2 = (float) document.getElementById('text2').value;
document.getElementById('text3').value = (txt1 * txt2);
}
</script>
</head>
<body>
<table>
<tr>
<td><input type="text" id="text1" name="text1"></td>
<td><input type="text" id="text2" name="text2" onkeypress="calc();"></td>
<td><input type="text" id="text3" name="text3"></td>
</tr>
</table>
</body>
</html>
更新:谁写了“(浮动)”导致问题,是对的。谢谢你的帮助。
答案 0 :(得分:4)
尝试使用parseFloat
强制转换为浮动
function calc()
{
var txt1 = parseFloat(document.getElementById('text1').value);
var txt2 = parseFloat(document.getElementById('text2').value);
document.getElementById('text3').value = (txt1 * txt2);
}
答案 1 :(得分:1)
您收到该错误的原因是您在此处定义的函数无效,因此未加载。问题在于(浮动) - 你不能像在JavaScript中那样进行类型转换。
使用parseFloat()函数,如下所示:
var txt1 = parseFloat(document.getElementById('text1').value);
请注意,Rajesh也是正确的,因为您需要更改
<script language="text/javascript">
到
<script type="text/javascript">
完整,正确的脚本如下:
<script type="text/javascript">
function calc()
{
var txt1 = parseFloat(document.getElementById('text1').value);
var txt2 = parseFloat(document.getElementById('text2').value);
document.getElementById('text3').value = (txt1 * txt2);
}
</script>
答案 2 :(得分:0)
1)尝试更改
<script language="text/javascript">
到
<script type="text/javascript">
如果您想使用已弃用的 language
属性,则可以执行以下操作:
<script language="Javascript">
此外,正如其他人已经指出的那样,要从字符串中获取浮点数,您可以使用parseFloat
并将字符串作为参数传递。使用(float)
通常用于 Java ,以便将数字类型(例如double
或int
)转换为float
。
2)尝试更改
var txt1 = (float) document.getElementById('text1').value;
var txt2 = (float) document.getElementById('text2').value;
到
var txt1 = parseFloat(document.getElementById('text1').value;
var txt2 = parseFloat(document.getElementById('text2').value;
答案 3 :(得分:0)
使用parseFloat()
代替(float)
答案 4 :(得分:-1)
试试这个Demo
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/JavaScript">
function calc()
{
var txt1 = document.getElementById('text1');
var txt2 = document.getElementById('text2');
document.getElementById('text3').value = (parseFloat(txt1.value) * parseFloat(txt2.value));
}
</script>
</head>
<body>
<table>
<tr>
<td><input type="text" id="text1" name="text1" value=""></td>
<td><input type="text" id="text2" name="text2" value=""></td>
<td><input type="text" id="text3" name="text3" onkeypress="calc()" value=""></td>
</tr>
</table>
</body>
</html>
答案 5 :(得分:-2)
使用此行<script language="javascript" type="text/javascript">
答案 6 :(得分:-2)
我是导致问题的(浮动)投射。