asp动态文本框相加

<formmethod="post"name="form"><scriptlanguage="javascript">functiontotal(){if(documen... <form method="post" name="form">
<script language="javascript">
function total()
{
if(document.all.sl.length)
{
for(i=0;i<document.all.sl.length;i++)
{
var total;
total=parseFloat(document.all.sl[i].value) + parseFloat(document.all.sl[i].value);
document.all.zsl[i].value=total;
}
}
else
{
var total;
total=parseFloat(document.all.sl.value) + parseFloat(document.all.sl.value);
document.all.zsl.value=total;

}
}
</script>
<%
dim i
for i=1 to 5 %>
<input name="dj" type="text" id="dj" size="8" onkeyup="total();">
<input name="sl" type="text" id="sl" size="8" onkeyup="total();">
<input name="hj" type="text" id="hj" value="等待输入" size="8">
<br>
<%next%>
总数量:<input name="zsl" type="zsl" id="hj2">

</form>

----
以上代码请高手帮忙改改,总数量要得到上面所有sl文本框的总和。
展开
 我来答
KarasCanvas
2010-02-24 · TA获得超过2865个赞
知道大有可为答主
回答量:3619
采纳率:0%
帮助的人:3265万
展开全部
获取元素用name属性,id必须是唯一的。
<html>
<body>
单价:<input name="dj" type="text" size="8">
数量:<input name="sl" type="text" size="8">
合计:<input name="hj" type="text" size="8" value="等待输入" readonly>
<br/>
单价:<input name="dj" type="text" size="8">
数量:<input name="sl" type="text" size="8">
合计:<input name="hj" type="text" size="8" value="等待输入" readonly>
<br/>
单价:<input name="dj" type="text" size="8">
数量:<input name="sl" type="text" size="8">
合计:<input name="hj" type="text" size="8" value="等待输入" readonly>
<br/>
总数量:<input type="text" name="zsl" id="hj2" readonly>
<br/>
总金额:<input type="text" name="zje" id="hj3" readonly>

<script language="javascript">
(function(){
var addEvent = function(e, t, f){
if(e.attachEvent){
e.attachEvent('on'+t,f);
}else if(e.addEventListener){
e.addEventListener(t,f,false);
}else{
e['on'+t] = f;
}
};

var form = {
dj : document.getElementsByName("dj") ,
sl : document.getElementsByName("sl") ,
hj : document.getElementsByName("hj") ,
tt : document.getElementById("hj2") ,
ss : document.getElementById("hj3") ,
calc : function(i){
var a = (/^\d+(\.\d+)?$/).test(this.dj[i].value) ? parseFloat(this.dj[i].value) : 0;
var b = (/^\d+(\.\d+)?$/).test(this.sl[i].value) ? parseFloat(this.sl[i].value) : 0;
this.hj[i].value = a * b;
var c = 0;
for(var j = 0; j < this.sl.length; j++){
c += (/^\d+(\.\d+)?$/).test(this.sl[j].value) ? parseFloat(this.sl[j].value) : 0;
}
this.tt.value = c;
var s = 0;
for(var j = 0; j < this.hj.length; j++){
s += (/^\d+(\.\d+)?$/).test(this.hj[j].value) ? parseFloat(this.hj[j].value) : 0;
}
this.ss.value = s;
},
bind : function(i){
var _this = this;
addEvent(this.dj[i], "keyup", function(){_this.calc(i);});
addEvent(this.sl[i], "keyup", function(){_this.calc(i);});
},
init : function(){
for(var i = 0; i < this.dj.length; i++){this.bind(i);}
}
}
form.init();
})();
</script>
</body>
</html>
晨曦大侠
2010-02-24 · 我为人人,人人为我。
晨曦大侠
采纳数:632 获赞数:2297

向TA提问 私信TA
展开全部
<script>
function getAge(n){
if (n!="") {
bbb=document.getElementById("sl1").value
ccc=document.getElementById("sl2").value
ddd=document.getElementById("sl3").value
eee=document.getElementById("sl4").value
fff=document.getElementById("sl5").value
aaa=parseInt(bbb)+parseInt(ccc)+parseInt(ddd)+parseInt(eee)+parseInt(fff)
document.getElementById("zsl").value=aaa;
}else{
document.getElementById("zsl").value=""
}
}
</script>
<form method="post" name="form">
<%
dim i
for i=1 to 5 %>
<input name="dj" type="text" id="dj" size="8">
<input name="sl<%=i%>" type="text" id="sl" size="8" onKeyup="getAge(this.value)" value="0">
<input name="hj" type="text" id="hj" value="等待输入" size="8">
<br>
<%next%>
总数量:<input name="zsl" type="zsl" id="hj2">

</form>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式