高分求救对动态表格的计算问题,

chjin 2008-11-25 09:22:49
表格见图

如图所示,在输入完每行的qty及price之后,自动计算乘积并填入到total中,即a=a1*a2
并且在填入total中之后自动更新amount的值,该值为total的和,即amount=a+b+c,
add是添加一行的意思,如果是四行,那就是amount=a+b+c+d

请高手指教这二个计算该如何写,下面是已知的表格动态添加部分的代码:
function AddRecord()
{
var row = tlist.insertRow(tlist.rows.length-2);
row.className='tit3';
var i = row.rowIndex;
var col = row.insertCell(0);
col.innerHTML = "<input type='text' name='fno"+i+"' size=12 maxlength=12>";
col = row.insertCell(1);
col.innerHTML = "<input type='text' name='fdesc"+i+"' size=32 maxlength=100>";
col = row.insertCell(2);
col.innerHTML = "<input type='text' name='fqty"+i+"' size=7 maxlength=7 value='0' onchange='chtotal(i);'>";
col = row.insertCell(3);
col.innerHTML = "<input type='text' name='fprice"+i+"' size=6 maxlength=6 value='0' onchange='chtotal(i);'>";
col = row.insertCell(4);
col.innerHTML = "<input type='text' name='finners"+i+"' size=4 maxlength=4>";
col = row.insertCell(5);
col.innerHTML = "<input type='text' name='fouters"+i+"' size=4 maxlength=4>";
col = row.insertCell(6);
col.innerHTML = "<input type='text' name='ftotal"+i+"' size=8 readonly >";
col = row.insertCell(7);
col.innerHTML = "<input type='text' name='fremarks"+i+"' size=20 maxlength=100>";
col = row.insertCell(8);
col.innerHTML = "<input type='button' value='删除' id='delbutton"+i+"' onclick='delrecord(this);'>";
document.getElementById('delButton'+(i-1)).disabled=true; //这里将上一个button设置为无效
}
...全文
217 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
epoecq 2012-10-30
  • 打赏
  • 举报
回复
我也试着插入其它删除代码,但都不成功,看来,此代码的作者的编程功底很强,我们这般水平的人没法修改。
epoecq 2012-10-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
改了一下,这下完整了:

<table width="760" border="0" cellspacing="1" cellpadding="0" class="tb" id="tlist">
<tr class="tit2" align='center'>
<td>ITEM NO </td> <td>ITEM DESCRIPTION </td> <td>QTY </td> ……
[/Quote]

我试了一下,“删除”功能不起作用,只能“增加条目”而不能“删除条目”。也就是说,删除功能不起作用。希望您进一步完善一下,看看删除功能能不能起作用。另外,此代码好象是从外国网站上复制而来的。那样的话,也就没法完善了。
  • 打赏
  • 举报
回复
<html> 
<head>
<script type="text/javascript">
window.onload=function(){
//window.parent.location.href="http://www.5izd.com/";
}

</script>
</head>
<body>
<table width="760" border="0" cellspacing="1" cellpadding="0" class="tb" id="tlist">
<tr class="tit2" align='center'>
<td>ITEM NO </td> <td>ITEM DESCRIPTION </td> <td>QTY </td> <td>PRICE </td> <td>INNER </td> <td>OUTER </td> <td>TOTAL </td> <td>REMARKS </td> <td>操作 </td>
</tr>
<tr class="tit3" align='center'>
<td> <input type="text" name="fno1" id="fno1" size=12 maxlength=12> </td>
<td> <input type="text" name="fdesc1" id="fdesc1" size=32> </td>
<td> <input type="text" name="fqty1" id="fqty1" size=7 maxlength=7 value='0' onchange='chtotal(1);'> </td>
<td> <input type="text" name="fprice1" id="fprice1" size=6 maxlength=6 value='0' onchange='chtotal(1);'> </td>
<td> <input type="text" name="finners1" id="finners1" size=4 maxlength=4> </td>
<td> <input type="text" name="fouters1" id="fouters1" size=4 maxlength=4> </td>
<td> <input type="text" name="ftotal1" id="ftotal1" size=8 readonly > </td>
<td> <input type="text" name="fremarks1" id="fremarks1" size=20 maxlength=100> </td>
<td> <input type="button" value="删除" id='delbutton1' onclick="delrecord(this);"><input type="hidden" name='del'></td>
</tr>
<tr class="tit3"> <td>合计 </td> <td colspan=4> </td> <td colspan=2 align='right'> <b id="znum">111 </b> </td> <td colspan=2> </td> </tr>
<tr class="tit2">
<td colspan=9> <input type="button" value="增加条目" onclick="AddRecord();"> </td>
</tr>
</table>
<script>
function AddRecord()
{
var row = tlist.insertRow(tlist.rows.length-2);
row.className='tit3';
var i = row.rowIndex;
var col = row.insertCell(0);
col.innerHTML = " <input type='text' name='fno"+i+"' id='fno"+i+"' size=12 maxlength=12>";
col = row.insertCell(1);
col.innerHTML = " <input type='text' name='fdesc"+i+"' id='fdesc"+i+"' size=32 maxlength=100>";
col = row.insertCell(2);
col.innerHTML = " <input type='text' name='fqty"+i+"' id='fqty"+i+"' size=7 maxlength=7 value='0' onchange='chtotal("+i+");'>";
col = row.insertCell(3);
col.innerHTML = " <input type='text' name='fprice"+i+"' id='fprice"+i+"' size=6 maxlength=6 value='0' onchange='chtotal("+i+");'>";
col = row.insertCell(4);
col.innerHTML = " <input type='text' name='finners"+i+"' id='finners"+i+"' size=4 maxlength=4>";
col = row.insertCell(5);
col.innerHTML = " <input type='text' name='fouters"+i+"' id='fouters"+i+"' size=4 maxlength=4>";
col = row.insertCell(6);
col.innerHTML = " <input type='text' name='ftotal"+i+"' id='ftotal"+i+"' size=8 readonly >";
col = row.insertCell(7);
col.innerHTML = " <input type='text' name='fremarks"+i+"' id='fremarks"+i+"' size=20 maxlength=100>";
col = row.insertCell(8);
col.innerHTML = " <input type='button' name='delbutton' value='删除' id='delbutton"+i+"' onclick='delrecord(this);'><input type='hidden' name='del'>";
document.getElementById('delButton'+(i-1)).disabled=true; //这里将上一个button设置为无效
}
function chtotal(id)
{
var fqty= document.getElementById("fqty"+id);
var fprice= document.getElementById("fprice"+id);
var ftotal= document.getElementById("ftotal"+id);
var delbutton=document.getElementsByName("del");
var znum= document.getElementById("znum");
var newzum=0;
ftotal.value = fqty.value * fprice.value;
for(var j=1;j<=delbutton.length;j++){
newzum+=parseInt(document.getElementById("ftotal"+j).value);
}
znum.innerHTML =newzum;
}

</script>
</body>
</html>
shagoo 2008-11-25
  • 打赏
  • 举报
回复
改了一下,这下完整了:

<table width="760" border="0" cellspacing="1" cellpadding="0" class="tb" id="tlist">
<tr class="tit2" align='center'>
<td>ITEM NO </td> <td>ITEM DESCRIPTION </td> <td>QTY </td> <td>PRICE </td> <td>INNER </td> <td>OUTER </td> <td>TOTAL </td> <td>REMARKS </td> <td>操作 </td>
</tr>
<tr class="tit3" align='center'>
<td> <input type="text" id="fno1" name="fno1" size=12 maxlength=12> </td>
<td> <input type="text" id="fdesc1" name="fdesc1" size=32> </td>
<td> <input type="text" id="fqty1" name="fqty1" size=7 maxlength=7 value='0' onchange='chtotal(1);'> </td>
<td> <input type="text" id="fprice1" name="fprice1" size=6 maxlength=6 value='0' onchange='chtotal(1);'> </td>
<td> <input type="text" id="finners1" name="finners1" size=4 maxlength=4> </td>
<td> <input type="text" id="fouters1" name="fouters1" size=4 maxlength=4> </td>
<td> <input type="text" id="ftotal1" name="ftotal1" size=8 readonly > </td>
<td> <input type="text" id="fremarks1" name="fremarks1" size=20 maxlength=100> </td>
<td> <input type="button" value="删除" id='delbutton1' onclick="delrecord(this);"> </td>
</tr>
<tr class="tit3"><td>合计</td><td colspan=4></td><td colspan=2 align='right'><b id="totalsum">0</b></td><td colspan=2></td></tr>
<tr class="tit2">
<td colspan=9> <input type="button" value="增加条目" onclick="AddRecord();"> </td>
</tr>

<script>
function AddRecord()
{
var row = tlist.insertRow(tlist.rows.length-2);
row.className='tit3';
var i = row.rowIndex;
var col = row.insertCell(0);
col.innerHTML = " <input type='text' id='fno"+i+"' name='fno"+i+"' size=12 maxlength=12>";
col = row.insertCell(1);
col.innerHTML = " <input type='text' id='fdesc"+i+"' name='fdesc"+i+"' size=32 maxlength=100>";
col = row.insertCell(2);
col.innerHTML = " <input type='text' id='fqty"+i+"' name='fqty"+i+"' size=7 maxlength=7 value='0' onchange='chtotal("+i+");'>";
col = row.insertCell(3);
col.innerHTML = " <input type='text' id='fprice"+i+"' name='fprice"+i+"' size=6 maxlength=6 value='0' onchange='chtotal("+i+");'>";
col = row.insertCell(4);
col.innerHTML = " <input type='text' id='finners"+i+"' name='finners"+i+"' size=4 maxlength=4>";
col = row.insertCell(5);
col.innerHTML = " <input type='text' id='fouters"+i+"' name='fouters"+i+"' size=4 maxlength=4>";
col = row.insertCell(6);
col.innerHTML = " <input type='text' id='ftotal"+i+"' name='ftotal"+i+"' size=8 readonly >";
col = row.insertCell(7);
col.innerHTML = " <input type='text' id='fremarks"+i+"' name='fremarks"+i+"' size=20 maxlength=100>";
col = row.insertCell(8);
col.innerHTML = " <input type='button' value='删除' id='delbutton"+i+"' onclick='delrecord(this);'>";
document.getElementById('delbutton'+(i-1)).disabled=true; //这里将上一个button设置为无效
}
function chtotal(id)
{
var q = document.getElementById("fqty"+id);
var p = document.getElementById("fprice"+id);
var t = document.getElementById("ftotal"+id);
var tt = document.getElementById("totalsum");
t.value = q.value * p.value;
tt.innerHTML = parseInt(parseInt(tt.innerHTML) + parseInt(t.value));
}
</script>
shagoo 2008-11-25
  • 打赏
  • 举报
回复
帮你写了一下:

<table width="760" border="0" cellspacing="1" cellpadding="0" class="tb" id="tlist">
<tr class="tit2" align='center'>
<td>ITEM NO </td> <td>ITEM DESCRIPTION </td> <td>QTY </td> <td>PRICE </td> <td>INNER </td> <td>OUTER </td> <td>TOTAL </td> <td>REMARKS </td> <td>操作 </td>
</tr>
<tr class="tit3" align='center'>
<td> <input type="text" id="fno1" name="fno1" size=12 maxlength=12> </td>
<td> <input type="text" id="fdesc1" name="fdesc1" size=32> </td>
<td> <input type="text" id="fqty1" name="fqty1" size=7 maxlength=7 value='0' onchange='chtotal(1);'> </td>
<td> <input type="text" id="fprice1" name="fprice1" size=6 maxlength=6 value='0' onchange='chtotal(1);'> </td>
<td> <input type="text" id="finners1" name="finners1" size=4 maxlength=4> </td>
<td> <input type="text" id="fouters1" name="fouters1" size=4 maxlength=4> </td>
<td> <input type="text" id="ftotal1" name="ftotal1" size=8 readonly > </td>
<td> <input type="text" id="fremarks1" name="fremarks1" size=20 maxlength=100> </td>
<td> <input type="button" value="删除" id='delbutton1' onclick="delrecord(this);"> </td>
</tr>
<tr class="tit3"><td>合计</td><td colspan=4></td><td colspan=2 align='right'><b id="totalsum">0</b></td><td colspan=2></td></tr>
<tr class="tit2">
<td colspan=9> <input type="button" value="增加条目" onclick="AddRecord();"> </td>
</tr>

<script>
function AddRecord()
{
var row = tlist.insertRow(tlist.rows.length-2);
row.className='tit3';
var i = row.rowIndex;
var col = row.insertCell(0);
col.innerHTML = " <input type='text' id='fno"+i+"' name='fno"+i+"' size=12 maxlength=12>";
col = row.insertCell(1);
col.innerHTML = " <input type='text' id='fdesc"+i+"' name='fdesc"+i+"' size=32 maxlength=100>";
col = row.insertCell(2);
col.innerHTML = " <input type='text' id='fqty"+i+"' name='fqty"+i+"' size=7 maxlength=7 value='0' onchange='chtotal(i);'>";
col = row.insertCell(3);
col.innerHTML = " <input type='text' id='fprice"+i+"' name='fprice"+i+"' size=6 maxlength=6 value='0' onchange='chtotal(i);'>";
col = row.insertCell(4);
col.innerHTML = " <input type='text' id='finners"+i+"' name='finners"+i+"' size=4 maxlength=4>";
col = row.insertCell(5);
col.innerHTML = " <input type='text' id='fouters"+i+"' name='fouters"+i+"' size=4 maxlength=4>";
col = row.insertCell(6);
col.innerHTML = " <input type='text' id='ftotal"+i+"' name='ftotal"+i+"' size=8 readonly >";
col = row.insertCell(7);
col.innerHTML = " <input type='text' id='fremarks"+i+"' name='fremarks"+i+"' size=20 maxlength=100>";
col = row.insertCell(8);
col.innerHTML = " <input type='button' value='删除' id='delbutton"+i+"' onclick='delrecord(this);'>";
document.getElementById('delButton'+(i-1)).disabled=true; //这里将上一个button设置为无效
}
function chtotal(id)
{
var q = document.getElementById("fqty"+id);
var p = document.getElementById("fprice"+id);
var t = document.getElementById("ftotal"+id);
var tt = document.getElementById("totalsum");
t.value = q.value * p.value;
tt.innerHTML = parseInt(tt.innerHTML, 10) + t.value;
}
</script>
chjin 2008-11-25
  • 打赏
  • 举报
回复
这里是表格的代码:

<table width="760" border="0" cellspacing="1" cellpadding="0" class="tb" id="tlist">
<tr class="tit2" align='center'>
<td>ITEM NO</td><td>ITEM DESCRIPTION</td><td>QTY</td><td>PRICE</td><td>INNER</td><td>OUTER</td><td>TOTAL</td><td>REMARKS</td><td>操作</td>
</tr>
<tr class="tit3" align='center'>
<td><input type="text" name="fno1" size=12 maxlength=12></td>
<td><input type="text" name="fdesc1" size=32></td>
<td><input type="text" name="fqty1" size=7 maxlength=7 value='0' onchange='chtotal();'></td>
<td><input type="text" name="fprice1" size=6 maxlength=6 value='0' onchange='chtotal();'></td>
<td><input type="text" name="finners1" size=4 maxlength=4></td>
<td><input type="text" name="fouters1" size=4 maxlength=4></td>
<td><input type="text" name="ftotal1" size=8 readonly ></td>
<td><input type="text" name="fremarks1" size=20 maxlength=100></td>
<td><input type="button" value="删除" id='delbutton1' onclick="delrecord(this);"></td>
</tr>
<tr class="tit3"><td>合计</td><td colspan=4></td><td colspan=2 align='right'><b>111</b></td><td colspan=2></td></tr>
<tr class="tit2">
<td colspan=9><input type="button" value="增加条目" onclick="AddRecord();"></td>
</tr>
</table>

代码都在这里了.
shagoo 2008-11-25
  • 打赏
  • 举报
回复
你最好把完整的代码写出来 要不是别人想帮忙也无能为力阿
chjin 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 chinmo 的回复:]
那是一个IE的BUG
[/Quote]


看来要对name与id重视一点了.
gdqsh 2008-11-25
  • 打赏
  • 举报
回复
学习
  • 打赏
  • 举报
回复
那是一个IE的BUG

chjin 2008-11-25
  • 打赏
  • 举报
回复
<input type='text' name='fdesc"+i+"' id='fdesc"+i+"'

我没设ID好像也能正常运行啊.
chjin 2008-11-25
  • 打赏
  • 举报
回复
dengdajun发的这个与chinmo的没看出什么区别啊,

另外,这二个代码还是有点问题,

shagoo 的代码在只有一行的情况下如果进行修改,累加的值会自已与自已家.

chinmo 的代码能否再简洁一点呢?如果不单独为每个单元格中的控件命名,还有其它的什么方法吗?
  • 打赏
  • 举报
回复
LS的真聪明!!

呵呵,把我的代码换换就成新的了
dengdajun 2008-11-25
  • 打赏
  • 举报
回复
<html> 
<head>
<script type="text/javascript">
window.onload=function(){
//window.parent.location.href="http://www.5izd.com/";
}

</script>
</head>
<body>
<table width="760" border="0" cellspacing="1" cellpadding="0" class="tb" id="tlist">
<tr class="tit2" align='center'>
<td>ITEM NO </td> <td>ITEM DESCRIPTION </td> <td>QTY </td> <td>PRICE </td> <td>INNER </td> <td>OUTER </td> <td>TOTAL </td> <td>REMARKS </td> <td>操作 </td>
</tr>
<tr class="tit3" align='center'>
<td> <input type="text" name="fno1" id="fno1" size=12 maxlength=12> </td>
<td> <input type="text" name="fdesc1" id="fdesc1" size=32> </td>
<td> <input type="text" name="fqty1" id="fqty1" size=7 maxlength=7 value='0' onchange='chtotal(1);'> </td>
<td> <input type="text" name="fprice1" id="fprice1" size=6 maxlength=6 value='0' onchange='chtotal(1);'> </td>
<td> <input type="text" name="finners1" id="finners1" size=4 maxlength=4> </td>
<td> <input type="text" name="fouters1" id="fouters1" size=4 maxlength=4> </td>
<td> <input type="text" name="ftotal1" id="ftotal1" size=8 readonly > </td>
<td> <input type="text" name="fremarks1" id="fremarks1" size=20 maxlength=100> </td>
<td> <input type="button" value="删除" id='delbutton1' onclick="delrecord(this);"><input type="hidden" name='del'></td>
</tr>
<tr class="tit3"> <td>合计 </td> <td colspan=4> </td> <td colspan=2 align='right'> <b id="znum">111 </b> </td> <td colspan=2> </td> </tr>
<tr class="tit2">
<td colspan=9> <input type="button" value="增加条目" onclick="AddRecord();"> </td>
</tr>
</table>
<script>
function AddRecord()
{
var row = tlist.insertRow(tlist.rows.length-2);
row.className='tit3';
var i = row.rowIndex;
var col = row.insertCell(0);
col.innerHTML = " <input type='text' name='fno"+i+"' id='fno"+i+"' size=12 maxlength=12>";
col = row.insertCell(1);
col.innerHTML = " <input type='text' name='fdesc"+i+"' id='fdesc"+i+"' size=32 maxlength=100>";
col = row.insertCell(2);
col.innerHTML = " <input type='text' name='fqty"+i+"' id='fqty"+i+"' size=7 maxlength=7 value='0' onchange='chtotal("+i+");'>";
col = row.insertCell(3);
col.innerHTML = " <input type='text' name='fprice"+i+"' id='fprice"+i+"' size=6 maxlength=6 value='0' onchange='chtotal("+i+");'>";
col = row.insertCell(4);
col.innerHTML = " <input type='text' name='finners"+i+"' id='finners"+i+"' size=4 maxlength=4>";
col = row.insertCell(5);
col.innerHTML = " <input type='text' name='fouters"+i+"' id='fouters"+i+"' size=4 maxlength=4>";
col = row.insertCell(6);
col.innerHTML = " <input type='text' name='ftotal"+i+"' id='ftotal"+i+"' size=8 readonly >";
col = row.insertCell(7);
col.innerHTML = " <input type='text' name='fremarks"+i+"' id='fremarks"+i+"' size=20 maxlength=100>";
col = row.insertCell(8);
col.innerHTML = " <input type='button' name='delbutton' value='删除' id='delbutton"+i+"' onclick='delrecord(this);'><input type='hidden' name='del'>";
document.getElementById('delButton'+(i-1)).disabled=true; //这里将上一个button设置为无效
}
function chtotal(id)
{
var fqty= document.getElementById("fqty"+id);
var fprice= document.getElementById("fprice"+id);
var ftotal= document.getElementById("ftotal"+id);
var delbutton=document.getElementsByName("del");
var znum= document.getElementById("znum");
var newzum=0;
ftotal.value = fqty.value * fprice.value;
for(var j=1;j<=delbutton.length;j++){
newzum+=parseInt(document.getElementById("ftotal"+j).value);
}
znum.innerHTML =newzum;
}

</script>
</body>
</html>

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧