2011-08-03 26 views
1

我有两个JavaScript文本框。javascript(数学)加起来一个数组

<input type="text" name="test" value="300" /> 
<input type="text" name="test" value="500" /> 

如何使用javascript来提醒文本框中项目的总价格?

会这样的工作?

var price = document.getElementById("test"); 
alert(price) 

回答

1

这将采取一切input因素考虑进去(有用的,如果你有很多)。通过type过滤他们,让他们的价值观中循环:

var inputs = document.getElementsByTagName("input"); 
var total = 0; 

for (var i = 0; i < inputs.length; i++){ 
    if (inputs[i].type = "text"){ 
     total += parseInt(inputs[i].value, 10); 
    } 
} 

alert(total); 
+0

非常感谢你的工作。我唯一需要改变的是document.getElementByTagName to document.getElementbyName。它以任何方式工作,但我在页面上没有其他数字的其他文本框。非常感谢你! – Jake

+0

AFAIK'getElementsByName'在IE中不起作用,我更愿意使用'getElementsByTagName'并在循环内用 –

+0

的名字进行过滤。你知道我怎么也可以做到这一点,以便我可以有一个名为“价格表”的最终文本框,并在该文本框中,所有的价格将在数组中?基本上它会做的是采取两个文本框的值,并把它们放入一个逗号分隔的文本框 – Jake

0
<input id="test1" type="text" name="test" value="300" /> 
<input id="test2" type="text" name="test" value="500" /> 

JS:

var price = parseInt(document.getElementById("test1").value, 10) + parseInt(document.getElementById("test2").value, 10); 
0
<input id="price1" type="text" name="test" value="300" /> 
<input id="price2" type="text" name="test" value="500" /> 

这将工作:

var price = document.getElementById("price1").value+document.getElementById("price2").value; 
alert(price) 

注意不要有其他的变量与id="price1"id="price2"

0

什么你有几个原因导致写入不起作用。首先,顾名思义,getElementById获取基于id属性的值的元素。你还没有给你的input元素一个id属性,所以这是行不通的。其次,document.getElementById('someId')返回一个元素,但你想要的值。您可以使用value属性来获取它:

var price1 = parseInt(document.getElementById("test1").value, 10); 
var price2 = parseInt(document.getElementById("test2").value, 10); 
alert(price1 + price2); 

这将下面的HTML工作:

<input type="text" name="test" id="test1" value="300" /> 
<input type="text" name="test" id="test2" value="500" /> 

注意使用parseIntvalue属性返回一个字符串,因此我们使用parseInt来尝试将其解析为数字。如果你不使用它,price1 + price2将简单地连接字符串。

+0

以及我想总结数组。我可以做getElementByName吗?我将从数据库中提取,因此我不知道会有多少条记录。我所知道的是,每个人都有自己的价格。我怎样才能使它从数据库中总结数组? – Jake

+0

对不起,我应该更仔细地阅读你的问题。在这种情况下,请参阅@Igor Dymov的答案,它不使用'getElementById',因此意味着您不必更改HTML。 –

相关问题