我有两个JavaScript文本框。javascript(数学)加起来一个数组
<input type="text" name="test" value="300" />
<input type="text" name="test" value="500" />
如何使用javascript来提醒文本框中项目的总价格?
会这样的工作?
var price = document.getElementById("test");
alert(price)
我有两个JavaScript文本框。javascript(数学)加起来一个数组
<input type="text" name="test" value="300" />
<input type="text" name="test" value="500" />
如何使用javascript来提醒文本框中项目的总价格?
会这样的工作?
var price = document.getElementById("test");
alert(price)
这将采取一切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);
<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);
<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"
什么你有几个原因导致写入不起作用。首先,顾名思义,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" />
注意使用parseInt
。 value
属性返回一个字符串,因此我们使用parseInt
来尝试将其解析为数字。如果你不使用它,price1 + price2
将简单地连接字符串。
以及我想总结数组。我可以做getElementByName吗?我将从数据库中提取,因此我不知道会有多少条记录。我所知道的是,每个人都有自己的价格。我怎样才能使它从数据库中总结数组? – Jake
对不起,我应该更仔细地阅读你的问题。在这种情况下,请参阅@Igor Dymov的答案,它不使用'getElementById',因此意味着您不必更改HTML。 –
非常感谢你的工作。我唯一需要改变的是document.getElementByTagName to document.getElementbyName。它以任何方式工作,但我在页面上没有其他数字的其他文本框。非常感谢你! – Jake
AFAIK'getElementsByName'在IE中不起作用,我更愿意使用'getElementsByTagName'并在循环内用 –
的名字进行过滤。你知道我怎么也可以做到这一点,以便我可以有一个名为“价格表”的最终文本框,并在该文本框中,所有的价格将在数组中?基本上它会做的是采取两个文本框的值,并把它们放入一个逗号分隔的文本框 – Jake