2016-03-16 21 views
-5

我得到了无效的左手赋值错误和未定义的函数错误。任何人都可以帮助我?它基本上是一个计算器。Javascript/Html未捕获ReferenceError:赋值时无效的左侧;未捕获ReferenceError:Calc未定义

//Calc.js: \t 
 
var FirstNum = document.getElementById('FirstNum') 
 
var SecondNum = document.getElementById('SecondNum') 
 
var Method = document.getElementById('Method') 
 
var Answer = document.getElementById('Answer') 
 
\t 
 
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> 
 
    \t <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>

+0

第一格式您的代码 –

+0

变量'subtract'应该来自哪里?为什么你会期望DOM在加载之前做好准备?控制台告诉你什么? –

+4

FirstNum.value + SecondNum.value = Answer.value? – lifetimes

回答

0

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

<!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> 
+0

谢谢,但我仍然得到Test2.html:33“未捕获的ReferenceError:Calc未定义”错误。 – JustinWeaver

+0

@JustinWeaver,你有没有试过我的整个解决方案?我不是只是纠正了赋值错误,而是一大堆脚本错误。在关闭状态时出现问题等。 – Bikee

+0

我现在已经完成了,你能解释一下这个解决方案吗,所以我可以从中学习吗? – JustinWeaver

相关问题