0

I've tried use Plus Arithmetic Operation to calculate 2 input text type number values, but my result was the values are "together", like that:

  • Value one: 5
  • Value two: 5

Result

55

Wanted Result

10

Code

<script type="text/javascript">
   function cal(){
    var plus = document.getElementById('plus').value,
        plus1 = document.getElementById('plus1').value;
    var x = plus + plus1;
    var result = document.getElementById('result');
    if(result.value == ""){
     result.innerHTML = "?";
    }
    else{
     result.innerHTML = x;
    }
  }
</script>

<input type="text" id="plus" /> + <input type="text" id="plus1" /> = <span id="result"></span>

How can I get plus result instead couple of numbers together?

4

7 回答 7

2
var plus = parseInt(document.getElementById('plus').value, 10),
    plus1 = parseInt(document.getElementById('plus1').value, 10);

这将做你想要的。

于 2013-09-04T12:56:56.647 回答
2

你可以试试这个:

function cal(){
    var plus = +document.getElementById('plus').value,
        plus1 = +document.getElementById('plus1').value;
    var x = plus + plus1;
    var result = document.getElementById('result');
    if(isNaN(plus) || isNaN(plus1) || result.value == ""){
     result.innerHTML = "?";
    }
    else{
     result.innerHTML = x;
    }
  }

请注意将两个字符串值转换为数字的 + 符号。

于 2013-09-04T12:56:17.693 回答
1

您从 DOM 中的输入元素获得的所有值都将是字符串。
Javascript+用于连接字符串和加法。
为了明确您想要添加数字而不是连接字符串,您需要确保您的值是数字:

parseInt(plus, 10) + parseInt(plus1, 10)

是的,这是 Javascript 中最基本且经常遇到的问题之一。

于 2013-09-04T12:56:31.337 回答
0

将 plus 和 plus1 包装在 parseInt() 中,以便添加而不是连接。

var plus = parseInt( document.getElementById('plus').value ),
    plus1 = parseInt( document.getElementById('plus1').value );
于 2013-09-04T12:55:16.943 回答
0

您需要将它们解析为 Integer 类型:

var x = parseInt(plus) + parseInt(plus1);

然后您可以使用isNaN()它来确定它是否是有效操作:(请注意,我正在检查x结果输出的 not 值)

if(isNaN(x)){
 result.innerHTML = "?";
}
else{
 result.innerHTML = x;
}

现场演示:http: //jsfiddle.net/4KB5Y/3/

于 2013-09-04T12:55:26.723 回答
0

parseInt 是您的代码中缺少的内容..您需要将其解析为仅发生连接操作的整数限制,因此您可以这样做

var plus = parseInt(document.getElementById('plus').value, 10),
plus1 = parseInt(document.getElementById('plus1' ).value, 10);

或者

var x = parseInt(plus , 10) + parseInt(plus1 , 10) ;
于 2013-09-04T13:00:53.790 回答
-1

http://jsfiddle.net/BLGLe/

<script type="text/javascript">
   function cal(){
    var plus = parseInt(document.getElementById('plus').value),
        plus1 = parseInt(document.getElementById('plus1').value);
    var x = plus + plus1;
    var result = document.getElementById('result');
    if(result.value == ""){
     result.innerHTML = "?";
    }
    else{
     result.innerHTML = x;
    }
  }
</script>

<input type="text" id="plus" /> + <input type="text" id="plus1" /> = <span id="result"></span>
于 2013-09-04T12:59:24.707 回答