所以,我对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>
我预计当我在每个输入中输入一个数字时,它会吐出两个数字的总和。相反,它只是单独打印两个数字。
我怎样才能打印这两个数字的总和?
答案 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()
。
我希望它将来能对某人有所帮助。