javascript - 如何成功地操作从用户输入中获取的数字? (HTML/JavaScript)

标签 javascript html input nan

我正在尝试创建一个确认框,该确认框将从输入 type="number"> 标记中获取两个数字,并使用确认框将它们相乘或相加,但返回的结果为 NaN。我做错了什么?

HTML

<input id="number1" type="number">
<input id="number2" type="number">
<input type="submit" value="Start Process" onclick="decisionDemo()">

JavaScript

var number1 = document.getElementById("number1");
var number2 = document.getElementById("number2");

function decisionDemo(){
    if(confirm("Would you like to multiply or add?")){
        alert("You multiplied for the result of "+ number1*number2);
    }
    else{
        alert("You added for the result of "+ (number1+number2));
    }   
}

最佳答案

首先,如果您想获取文本框中的值,document.getElementById("number1") 将仅返回 HTML 元素您必须使用 document.getElementById("number1").value ...

第二,您放置两个语句,var number1 = document. ...var number2 = document. ...decisionDemo() 方法之外,因此,它只会执行一次。您应该将这些语句放在 decisionDemo() 方法中。

第三document.getElementById("number1").value将返回string值。所以,如果你想进行算术计算,你需要将它们解析为某种数字,例如Integer或Float。

function decisionDemo(){
    var number1 = document.getElementById("number1").value;
    var number2 = document.getElementById("number2").value;
    number1 = parseFloat(number1);
    number2 = parseFloat(number2);
    if(confirm("Would you like to multiply or add?")){
        alert("You multiplied for the result of "+ number1*number2);
    }
    else{
        alert("You added for the result of "+ (number1+number2));
    }
}

您可能会面临NaN当用户输入无效数字时的结果。

您可以使用isNaN()检查您的输入是否有效

关于javascript - 如何成功地操作从用户输入中获取的数字? (HTML/JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22552109/

相关文章:

css - 两个 Div 固定在顶部

c - 使用管道或重定向时 Ncurses 闪烁

javascript - 输入位置在 Iphone 上无法正确显示

c++ - 为什么 std::getline() 在格式化提取后跳过输入?

javascript - Jquery 克隆只重复一次。需要重复多次

javascript - 滚动到可滚动 div 中特定类的顶部 - 每次单击向上/向下按钮

javascript - 单击更改页面中的模型数据

html - 在文本之上显示文本

javascript - AngularJS:如何在渲染之前从服务器填充数据?

javascript - 使用 Smart Mobile Studio 将图像保存到本地文件夹