簡體   English   中英

Javascript:函數未定義錯誤消息

[英]Javascript: function not defined error message

我有這個簡單的示例代碼,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>

更新:誰寫道“(float)”導致了問題,那是對的。 謝謝您的幫助。

嘗試使用parseFloat進行浮動

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);

請注意,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>

1)嘗試改變

<script language="text/javascript">

<script type="text/javascript">

如果要使用不推薦使用的 language屬性,可以執行以下操作:

<script language="Javascript">

此外,正如其他人已經指出的那樣,要從字符串中獲取浮點數,可以使用parseFloat並將該字符串作為參數傳遞。 Java中 ,通常使用(float)將數值類型從doubleintfloat

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;

使用parseFloat()代替(float)

試試這個演示

<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>

使用此行<script language="javascript" type="text/javascript">

我是導致問題的(浮動)轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM