JavaScript输入值问题

时间:2013-10-30 12:36:13

标签: javascript

以下内容无效:

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”

4 个答案:

答案 0 :(得分:6)

更改

return x + y;

return parseInt(x) + parseInt(y);

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

编辑正如RGraham在评论中所建议的那样,最好明确地传递基数(检查parseInt的doc)。所以,代码变成了

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

答案 1 :(得分:2)

更准确:

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

使用

<强> parseInt

语法

var num = parseInt(string,radix);

参数

<强>字符串     要解析的值。如果string不是字符串,则将其转换为1。字符串中的前导空格将被忽略。

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

  function sum(x,y){

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