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 = 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>
解决方案
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个问题
- 您在函数之间返回
- 您没有将值转换为数字(默认情况下它是字符串)
推荐阅读
- swift - 有没有办法使用 FileManager 和 NSBundle 来获取支持 /Applications 目录中给定类型文件的所有应用程序?
- r - 使用具有变化值的自定义顺序来概括向量的顺序
- c# - 如何序列化名称为“对象”的参数
- mysql - 新数据库未在 localhost:3306 [root] 创建 MySQL 服务器
- swift - 带有协议的观察者模式
- python - 如何使用python从api中获取json中的最大值
- sql - 我如何为数据库表设置两个限制器
- angular - Spring Boot / Angular index.html
- c - GDK_POINTER_MOTION_HINT_MASK 是如何工作的?
- sql - postgres 比较两个可为空值的最快方法