添加Javascript变量

时间:2011-12-15 22:02:58

标签: javascript math variables

所以,我对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> 

我预计当我在每个输入中输入一个数字时,它会吐出两个数字的总和。相反,它只是单独打印两个数字。

我怎样才能打印这两个数字的总和?

5 个答案:

答案 0 :(得分:17)

.value给出文本框中的字符,即字符串。你不知何故需要告诉JavaScript它是一个数字。否则你要连接字符串(str + str正在连接; num + num正在算术上添加。)

使用+最容易完成字符串到数字的转换:

+input1

所以在你的情况下:

document.write(+input1 + +input2);

然而,document.write不是展示事物的方式。你可能想要alert,或者把它放在另一个文本框或类似的东西中。 document.write将清除屏幕。

答案 1 :(得分:12)

当你读它们时它们是字符串,必须首先解析它们,

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

[编辑] 只是详细说明,parseInt和Unary Plus之间的区别在于错误处理,

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

答案 2 :(得分: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);
}

答案 3 :(得分:1)

您必须先使用parseInt将它们解析为整数。

答案 4 :(得分:0)

由于我使用十进制数字,因此我的解析效果很好,可以将它们解析为Float。我使用parseInt()而不是parseFloat()

我希望它将来能对某人有所帮助。