2014-09-10 59 views
1

我在javaScript中做了一些简单的函数。但是,当我打印结果时,我得到了正确的乘法和除法结果,但没有加法和减法。javascript中的简单计算器不会因为它应该

为什么这个功能几乎是一致的。

  <script type="text/javascript"> 
      function multiplyBy() 
      { 
       num1 = document.getElementById("firstNumber").value; 
       num2 = document.getElementById("secondNumber").value; 
       document.getElementById("result").innerHTML = num1 * num2; 
      } 

      function divideBy() 
      { 
       num1 = document.getElementById("firstNumber").value; 
       num2 = document.getElementById("secondNumber").value; 
       document.getElementById("result").innerHTML = num1/num2; 
      } 

      function addition() { 
       num1 = document.getElementById("firstNumber").value; 
       num2 = document.getElementById("firstNumber").value; 
       document.getElementById("result").innerHTML = num1 + num2; 
      } 

      function subtract() { 
       num1 = document.getElementById("firstNumber").value; 
       num2 = document.getElementById("firstNumber").value; 
       document.getElementById("result").innerHTML = num1 - num2; 
      } 
      </script> 

<body> 
<form> 
      <p>1st Number: <input type="text" id="firstNumber" /><br></p> 
      <p>2nd Number: <input type="text" id="secondNumber" /><br></p> 
      <input type="button" class="btn btn-success" onClick="multiplyBy()" Value="Multiply" /> 
      <input type="button" class="btn btn-warning" onClick="divideBy()" Value="Divide" /> 
      <input type="button" class="btn btn-danger" onClick="addition()" Value="Add" /> 
      <input type="button" class="btn btn-primary" onClick="subtract()" Value="Subtract" /> 
     </form> 
     <br/> 
     <p>The Result is : <br/> 
      <span id = "result"></span> 
     </p> 
</body> 
+2

你得到一个字符串来自'.value'调用,你应该首先使用'parseFloat()'或'parseInt()'将其转换为数字。否则“+”运算符是一个字符串运算符... – Sirko 2014-09-10 10:17:02

+1

尝试'Number(num1)+ Number(num2)' – iJade 2014-09-10 10:17:13

回答

3

变化

 function addition() { 
      num1 = document.getElementById("firstNumber").value; 
      num2 = document.getElementById("firstNumber").value; 
      document.getElementById("result").innerHTML = num1 + num2; 
     } 

     function subtract() { 
      num1 = document.getElementById("firstNumber").value; 
      num2 = document.getElementById("firstNumber").value; 
      document.getElementById("result").innerHTML = num1 - num2; 
     } 

 function addition() { 
      num1 = parseInt(document.getElementById("firstNumber").value); 
      num2 = parseInt(document.getElementById("secondNumber").value); 
      document.getElementById("result").innerHTML = (num1 + num2); 
     } 

     function subtract() { 
      num1 = parseInt(document.getElementById("firstNumber").value); 
      num2 = parseInt(document.getElementById("secondNumber").value); 
      document.getElementById("result").innerHTML = (num1 - num2); 
     } 

三件事,分析输入的号码,使用正确的ID为NUM2,做计算括号内是安全的

1

您的加法/减法功能有拼写错误。两个都得到'firstNumber'!哦,小东西...... ;-)

你也可以尝试先前评论中提到的parseInt(),parseFloat()函数,以确保你正在处理正确的数据类型。

+1

仍然不行...... – iJade 2014-09-10 10:19:27

+0

@iJay - 除了加法。这实际上是问题解决方案的一部分。强制类型是'+'运算符的问题,'-'运算符应该正确运行。 – bPratik 2014-09-10 10:20:45

+0

@iJay - 现在,通过编辑,这是一个完整的答案。 – bPratik 2014-09-10 10:23:35