Javascript/Html 未捕获的引用错误:赋值中的左侧无效;未捕获的引用错误:未定义计算

Javascript/Html Uncaught ReferenceError: Invalid left-hand side in assignment; Uncaught ReferenceError: Calc is not defined

本文关键字:引用 错误 无效 未定义 计算 Html Javascript 赋值      更新时间:2023-09-26

我收到无效的左手赋值错误和未定义的函数错误。有人能帮助我吗?它基本上是一个计算器。

//Calc.js:	
var FirstNum = document.getElementById('FirstNum')
var SecondNum = document.getElementById('SecondNum')
var Method = document.getElementById('Method')
var Answer = document.getElementById('Answer')
	
function Calc() {
    if(Method.value == add) {
        FirstNum.value + SecondNum.value = Answer.value
        alert(Answer)
    } else {
        if(Method.value == subtract) {
            FirstNum.value - SecondNum.value = Answer.value
            alert(Answer)
        } else if (Method.value == multiply ){
            FirstNum.value * SecondNum.value = Answer.value
            alert(Answer)
        } else if(Method.value == divide) {
            Firstnum.value / SecondNum.value = Answer.value
            alert(Answer)
        } else {
            alert("ERROR. You broke it :(")
        }
    }
}
<table border='1' align=center>
    <tr align=center><td><b>First Number</b></td> <td><b>Second Number</b></td></tr>
    <tr align=center>
        <td align=center><input type="text" id="FirstNum" align=center></td>
        <td align=center><input type="text" id="SecondNum" align=center></td>
    </tr>
    <tr>
        <td><input type="radio" name="Method" value="add">+</td>
        <td><input type="radio" name="Method" value="subtract">-</td>
    </tr>
    <tr>
        <td><input type="radio" name="Method" value="multiply">*</td>
    	<td><input type="radio" name="Method" value="divide">/</td>
    </tr>
    <tr>
        <td align=center><input type="button" value="=" onclick=Calc()></input></td>
        <td align=center><input type="text" id="Answer" align=center></td>
    </tr> 
</table>

试试这个。你的错误基本上是分配方向:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
    <table border='1' align="center">
        <tr align="center">
            <td><b>First Number</b></td>
            <td><b>Second Number</b></td>
        </tr>
        <tr align="center">
            <td align="center">
                <input type="text" id="FirstNum" align="center"></td>
            <td align="center">
                <input type="text" id="SecondNum" align="center"></td>
        </tr>
        <tr>
            <td>
                <input type="radio" name="Method" value="add">+</td>
            <td>
                <input type="radio" name="Method" value="subtract">-</td>
        </tr>
        <tr>
            <td>
                <input type="radio" name="Method" value="multiply">*</td>
            <td>
                <input type="radio" name="Method" value="divide">/</td>
        </tr>
        <tr>
            <td align="center">
                <input type="button" value="=" onclick="Calc()"></input></td>
            <td align="center">
                <input type="text" id="Answer" align="center"></td>
        </tr>
    </table>

    <script>
                //Calc.js:  
            var FirstNum = document.getElementById('FirstNum')
            var SecondNum = document.getElementById('SecondNum')
            var Method = document.getElementsByName('Method')
            var Answer = document.getElementById('Answer')
            function getRadioValue(theRadioGroup)
            {
                var elements = document.getElementsByName(theRadioGroup);
                for (var i = 0, l = elements.length; i < l; i++)
                {
                    if (elements[i].checked)
                    {
                        return elements[i].value;
                    }
                }
            }
            function Calc(){
                if(getRadioValue("Method") == "add"){
                    Answer.value = parseFloat(FirstNum.value) + parseFloat(SecondNum.value) ;
                } else{
                    if(getRadioValue("Method") == "subtract"){
                    Answer.value = parseFloat(FirstNum.value) - parseFloat(SecondNum.value);
                    }else
                        if(getRadioValue("Method") == "multiply"){
                            Answer.value = parseFloat(FirstNum.value) * parseFloat(SecondNum.value) ;
                        } else
                            if(getRadioValue("Method") == "divide"){
                                Answer.value = parseFloat(FirstNum.value) / parseFloat(SecondNum.value) ;
                                }   
                            else{
                                    alert("ERROR. You broke it :(")             
                    }
                }
            }
    </script>
</body>
</html>