日期:2014-05-16  浏览次数:20420 次

name相似的文本求和问题。
HTML code

<input type="text" id="<%=ID%>"  name="<%=ID%>name" value="<%=zhi%>"  style="width:60px" readonly/>

//ID是不一样的,从数据库中取,数据库中有几个ID,就有几个文本框。
//如果数据库中ID有2个为1和2,则:
//<input type="text" id="1"  name="1name" value="<%=zhi%>"  style="width:60px" readonly/>
//<input type="text" id="2"  name="2name" value="<%=zhi%>"  style="width:60px" readonly/>

总和:<input type="text" style="width:60px" readonly/>





这样的文本应该怎么求和呢?拜托高手指教!

------解决方案--------------------
傻傻的问一句:为什么不直接在数据库中算好再显示?
SQL code
select sum(字段名) from 表名

------解决方案--------------------
总和:<input type="text" style="width:60px" id="sum" readonly/>


HTML code
<script>
var sum = 0
//j为循环读出的数据条数
for(var i=1;i<=<%=j%>;i++)
{
    sum+=parseInt(document.getElementById(i).value)
}
document.getElementById("sum").value = sum;
</script>

------解决方案--------------------
将ID设置不一样,name都设置一样
然后用document.getElementsByName("name")去取出所有元素

如:


<input type="text" id="id1" name="name" value="<%=zhi%>" style="width:60px" readonly/>
<input type="text" id="id2" name="name" value="<%=zhi%>" style="width:60px" readonly/>

总和:<input id="allCount" type="text" style="width:60px" readonly/>


var ipt = document.getElementsByName("name");
var count = 0;
for (int i = 0; i < ipt.length; i++)
{
count += parseInt(ipt[i].value);
}
document.getElementById("allCount").value = count;
------解决方案--------------------
HTML code

<html>
<SCRIPT language="javascript"> 
function getSum(sName){
    var f = document.forms[0];
    var sum = 0;
    for(var i=0;i<f.elements.length;i++){
        if(f.elements[i].type=="text"){
            s = f.elements[i].name;
            if(s.substr(s.length-sName.length,sName.length)==sName) sum += parseFloat(f.elements[i].value);
        }
    }
    f.sum.value = sum;
}

window.onload = function(){
    getSum("name");
}
</SCRIPT>  
</head>
<body>
<form>
<input type="text" id="1"  name="1name" value="10"  style="width:60px" readonly/>
<input type="text" id="2"  name="2name" value="20"  style="width:60px" readonly/>
总和:<input type="text" name="sum" style="width:60px" readonly/>
</form>
</body>
</html>

------解决方案--------------------
<script>
var sum = 0
//j为循环读出的数据条数
for(var i=1;i<=<%=j%>;i++)
{
sum+=parseInt(document.getElementById("命名字符"+i).value)
}
document.getElementById("sum").value = sum;
</script>