首页 > 解决方案 > 无法得到加法结果

问题描述

我想添加用户输入,但有问题。没有错误,但没有任何反应。我想确保输入是数字,然后将两个输入相加。

function add() {
  
  var first = document.getElementById('first-number').value;        
  var second = document.getElementById('second-number').value;        

   
        firstMostBe = first;
        secondMostBe = second;
          var output;  
   if ((isNaN(firstMostBe)) || (isNaN(secondMostBe))){
     alert('one or both of the operands are not numbers');
   } else {
         output = firstMostBe + secondMostBe;
         return output;  
   } 
 
  var result = output; // place-holder, delete this and start over
  var output_field = document.getElementById('result');
  output_field.innerHTML = result;
}
<h2>Three-Layer Handlers Exercises</h2>

<hr>

  
   

<script src="./handlers-calculator.js"></script>

first number: <input id='first-number' value=''></input><br>
second number: <input id='second-number' value=''></input> <br>
<button onclick='add()'>+</button> 
<button onclick='subtract()'>-</button> 
<button onclick='multiply()'>*</button> 
<button onclick='divide()'>/</button> <br>
<p id='result'></p>

<br><br>

<hr>  
<hr>  
   

标签: javascript

解决方案


function add() {

    var first = document.getElementById('first-number').value;
    var second = document.getElementById('second-number').value;


    firstMostBe = first;
    secondMostBe = second;
    var output;
    if (isNaN(firstMostBe) || isNaN(secondMostBe)) {
        alert('one or both of the operands are not numbers');
    } else {
        output = parseInt(firstMostBe) + parseInt(secondMostBe);// By defaut it is string need to convert to number
        // no need to return form here 
    }

    var result = output; // place-holder, delete this and start over
    var output_field = document.getElementById('result');
    output_field.innerHTML = result;
}

有2个问题

  1. 您在函数之间返回
  2. 您没有将值转换为数字(默认情况下它是字符串)

推荐阅读