2013-12-17 69 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;