Javascript:函数未定义错误消息

Javascript:函数未定义错误消息,javascript,html,Javascript,Html,我有这个简单的示例代码,3个文本框。如果我把数字写在前两个,它会把它们相乘,然后把结果写在第三个。但是,如果我运行代码,我会得到一个错误:“ReferenceError:calc未定义”。我错过什么了吗 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script language="text/javascript">

我有这个简单的示例代码,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>

函数计算()
{
var txt1=(float)document.getElementById('text1').value;
var txt2=(float)document.getElementById('text2').value;
document.getElementById('text3')。值=(txt1*txt2);
}
更新:不管是谁写的“(浮动)”导致了问题,他是对的。谢谢你的帮助。

1)试试换衣服

<script language="text/javascript">
<script language="text/javascript">
此外,正如其他人已经指出的,要从字符串中获取浮点值,可以使用
parseFloat
并将字符串作为参数传递。使用
(float)
通常在Java中用于将数值类型(如
double
int
转换为
float

2) 试着改变

var txt1 = (float) document.getElementById('text1').value;
var txt2 = (float) document.getElementById('text2').value;


使用此行

尝试使用
parseFloat
转换为float

function calc()
{
    var txt1 = parseFloat(document.getElementById('text1').value);
    var txt2 = parseFloat(document.getElementById('text2').value);
    document.getElementById('text3').value = (txt1 * txt2);
}

出现该错误的原因是您在其中定义的函数无效,因此未加载该函数。问题在于(float)-在JavaScript中不能像那样进行类型转换

按如下方式使用parseFloat()函数:

var txt1 = parseFloat(document.getElementById('text1').value);
<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>
请注意,Rajesh也是正确的,因为您需要进行更改



完整、正确的脚本如下所示:

var txt1 = parseFloat(document.getElementById('text1').value);
<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>

函数计算()
{
var txt1=parseFloat(document.getElementById('text1').value);
var txt2=parseFloat(document.getElementById('text2').value);
document.getElementById('text3')。值=(txt1*txt2);
}
I是导致问题的(浮动)类型。

使用
parseFloat()
而不是
(浮动)
试试这个


函数计算()
{
var txt1=document.getElementById('text1');
var txt2=document.getElementById('text2');
document.getElementById('text3').value=(parseFloat(txt1.value)*parseFloat(txt2.value));
}

这没有帮助,language属性已被弃用。有用的信息,但实际上无法解决问题。@Peter Herdenborg更新了答案。好的,这会导致什么和如何?还有如何解决?你看到问题中的更新注释了吗?所以愚蠢的否决票太多了。。。
<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>
<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>