2011-12-15 128 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); 
}