好的,这就是问题所在。我目前有一个成功汇总所有输入框的JavaScript。
<script>
function myFunction(tBox)
{
var a=document.getElementById("hous1");
var b=document.getElementById("hous2");
var c=document.getElementById("hous3");
w=Number(a.value);
x=Number(b.value);
y=Number(c.value);
t=w+x+y;
document.getElementById("test").innerHTML=t;
}
</script>
动态创建文本输入框的数量,并根据以下内容给出唯一名称:
<?php
for ($i=1; $1<=$housingcount; $i++){
echo '<input size="',11,'" type="text" name="cavqty',$i,'" id="hous',$i,'" onchange="myFunction(value)"/>
?>
其中$ housingcount只计算与mysql查询匹配的行数。 此外,该功能只需输出:
<p id="test"></p>
只要文本输入框的数量等于3,此代码就可以正常工作。我的问题是如何编写我的javascript以便能够接收任意数量的文本输入,而不是限制为预定义的数字,例如三个?
答案 0 :(得分:2)
您必须检查所有输入元素并检查其名称,检查前缀&#34; hous&#34;。例如:
var sum = 0;
var elts = document.getElementsByTagName('input');
for( var i=0; i<elts.length; i++ ) {
var elt = elts[i];
if( elt.id && elt.id.indexOf( 'hous' ) === 0 ) sum += Number( elt.value );
}
console.log( sum );
此解决方案不需要jQuery。在这里看到它:
答案 1 :(得分:0)
我不知道我是否理解正确,但这可以总结你所有的输入,考虑到只有整数,如果你想漂浮,只要告诉我,我会发现。
HTML
<input size="11" type="text" name="cavqty" id="hous" onkeyup="myFunction(this.value)"/>
<input size="11" type="text" name="cavqty" id="hous" onkeyup="myFunction(this.value)"/>
<input size="11" type="text" name="cavqty" id="hous" onkeyup="myFunction(this.value)"/>
的Javascript
totalSum = 0;
myFunction = function (value) {
totalSum += parseInt(value, 10);
console.log(totalSum);
}
您可以看到Jsfiddle
工作