2011-12-15 162 views
1

所以,我相對比較新的JavaScript,我想知道如何從兩個輸入添加值並回顯結果。這是我到目前爲止有:添加Javascript變量

function math (form) { 
    var input1 = form.input1.value; 
    var input2 = form.input2.value; 
    var input3 = input1 + input2; 
    document.write (input3); 
} 
<form action="" method="GET"> 
    <input type="text" name="input1"> 
    <input type="text" name="input2"> 
    <input type="button" name="button" onClick="math(this.form)"> 
</form> 

我預計,當我進入一個數字,每個輸入它會吐出兩個數字的總和。相反,它只是單獨打印兩個數字。

我怎樣才能得到它打印兩個數字的總和?

回答

16

.value給出文本框中的字符,即字符串。你不知何故需要告訴JavaScript它是一個數字。否則,你串聯字符串(str + str串聯; num + num算術加)。

字符串到數字的轉換是最容易+這樣做:

你的情況
+input1 

所以:

document.write(+input1 + +input2); 

但是,document.write是不顯示事情的方式。您可能需要alert,或將其放入另一個文本框或類似的東西。 document.write將清除屏幕。

+0

謝謝你的提示。我只是暫時使用document.write,直到我找到了一些其他的東西。 – codedude 2011-12-15 22:12:29

1

你必須首先使用parseInt將它們解析爲整數。

12

他們是字符串,當你閱讀它們,它們必須首先解析,

var input3 = parseInt(input1, 10) + parseInt(input2, 10); 

[編輯]只是爲了闡述,parseInt和一元加號是在錯誤處理的區別,

var a = parseInt('123o45', 10); //123 
var b = +'123o45' // NaN 
+0

+1用於記憶基數 – 2011-12-15 22:10:37

+1

+1用於指出`parseInt`和Unary Plus之間的區別。 – Jonas 2011-12-15 22:24:42

3

parseInt函數是在這裏你的友情..

function math (form) { 
    var input1 = form.input1.value; 
    var input2 = form.input2.value; 
    var input3 = parseInt(input1, 10) + parseInt(input2, 10); 
    document.write (input3); 
}