2013-12-17 37 views
-2

我有这个JavaScript代码,当我在按钮上使用此功能时,它只是粘贴两个输入文本,但我想添加它们,例如: 结果是:2 + 3 = 23 但我想要2+ 3 = 5 我的问题在哪里?Javascript操作数

<script type="text/javascript"> 
    function Add() 
    { 
     var a; 
     var b; 
     var c; 
     a = document.getElementById('Text1').value; 
     b = document.getElementById('Text2').value; 
     c = a - b; 
     document.getElementById('Text3').value = c; 
    } 
</script> 
+4

'+'是字符串拼接。 – raina77ow

+0

所以我如何添加两个数字? –

+0

你需要从他们中取出数字而不是字符串。 – putvande

回答

1

您正在寻找parseInt

var myNum = parseInt(a, 10) + parseInt(b, 10); 

你应该总是用它的基数参数(, 10)。 Here's why

MDN也将其列为必需参数。

+2

我们是否-1为你假设值是整数或我们评论? –

+0

@NigelAngel不要太敏感。无论如何,OP表示他们*是整数:'结果是:2 + 3 = 23,但我想要2 + 3 = 5' –

+0

只有在他们给出的例子中。 –

1

+添加数字和连接字符串。由于您没有说过您的数字是整数,因此使用parseInt()可能不正确,您应该使用parseFloat()将字符串转换为浮点数。

a = parseFloat(document.getElementById('Text1').value); 
b = parseFloat(document.getElementById('Text2').value); 

parseFloat()

1

它串联字符串23

> '2' + '3' 
"23" 
> 2 + 3 
5 

你可以通过这个用parseInt(numberVariable, 10)

> parseInt('2', 10) + parseInt('3', 10) 
5 

如果使用十进制数,你可以使用parseFloat(numberVariable)

> parseFloat('2') + parseFloat('3') 
5 
2

首先,你需要将它们转换为整数,然后把它们加起来:

a = parseInt(document.getElementById('Text1').value, 10); 
b = parseInt(document.getElementById('Text2').value, 10); 

如果文本框的值不是整数,而是漂浮物,然后用parseFloat

+0

-1缺少基数参数。它应该**总是**被设置。 –

+8

+1,缺少基数参数需要评论,而不是-1。 –

+0

@DannyBeckett:我添加了一个基数参数。 – ProgramFOX

2

使用管道符较短:

a = +document.getElementById('Text1').value; 
b = +document.getElementById('Text2').value;