在Javascript中使用文本框的“.value”属性

时间:2013-11-04 13:03:51

标签: javascript dom

document.getElementById("t3").value = document.getElementById("t1").value + 
                                      document.getElementById("t2");

通过上面的代码,我无法得到两个数字相加的结果。

4 个答案:

答案 0 :(得分:3)

如果要将这些值添加到值,则必须首先将它们转换为整数。 .value始终包含字符串。

parseInt(document.getElementById("t1").value, 10) + parseInt(document.getElementById("t2").value, 10);

答案 1 :(得分:2)

你实际上并没有将两个数字加在一起。您正在尝试将document.getElementById("t1").value(包含数字的字符串)添加到document.getElementById("t2"),这是一个DOM元素。

你可能会得到这样的结果:

43[object HTMLInputElement]

你需要(a)获得第二个元素的value属性,(b)将它们作为数字加在一起,而不是作为字符串。

document.getElementById("t3").value = (+document.getElementById("t1").value) + 
                                      (+document.getElementById("t2").value);

(+document.getElementById("t1").value)将值转换为数字。这是unary plus + operator

答案 2 :(得分:0)

试试这个:

document.getElementById("t3").value = parseInt(document.getElementById("t1").value,10) + 
                                  parseInt(document.getElementById("t2").value,10);

答案 3 :(得分:0)

这很厚颜,但OP尝试更新的t3元素是divspan而不是input :)。

var t1, t2, t3;

t1 = document.getElementById("t1");
t2 = document.getElementById("t2");
t3 = document.getElementById("t3");

t3.innerHTML = parseInt(t1.value, 10) + parseInt(t2.value, 10);

或者

t3.innerHTML = +t1.value + +t2.value;