JavaScript 输入值问题

JavaScript input value issue

本文关键字:问题 输入 JavaScript      更新时间:2023-09-26

以下内容无法按预期工作:

function sum(x,y){
    return x + y;
}
document.getElementById('submit').onclick = function(e)
{
    //do someting
    e.stopPropagation();
    var value1 = document.getElementById('v1').value,
    value2 = document.getElementById('v2').value;
    var newSum = sum(value1, value2);
    console.log(newSum);
}

拾取的值有问题。它应该返回总和,而不是"1+2=12"

更改

return x + y;

return parseInt(x) + parseInt(y);

在添加它们之前,您必须先将值转换为数字。如果数字是浮点数,则可以使用 parseFloat 而不是 parseInt

编辑 正如 RGraham 在评论中建议的那样,最好明确传递基数(检查parseInt的文档)。因此,代码变为

return parseInt(x, 10) + parseInt(y, 10);

为了更准确:

  function sum(x,y){    
     return parseFloat(x) + parseFloat(y);
  }

你需要将你的值解析为一个int,因为所有值在javascript中都作为字符串传递。

value1 = parseInt(document.getElementById('v1').value, 10);
value2 = parseInt(document.getElementById('v2').value, 10);

使用

parseInt

语法

var num = parseInt(string, radix);

参数

字符串 要分析的值。如果字符串不是字符串,则将其转换为字符串。字符串中的前导空格将被忽略。

基数 一个整数,表示上述字符串的基数。始终指定此参数以消除读取器混淆并保证可预测的行为。未指定基数时,不同的实现会产生不同的结果。

  function sum(x,y){
           return parseInt(x,10) + parseInt(y,10);
        }