小弟想把一个用JavaScritp实现的可以删减的表格里的数据提交到servlet里,JavaScript运行正常,提交新增(在Servlet里新增一条记录)和修改(根据传过去的值实例化当条记录)的时候都正常,但是删除了一行(由于删除了无法传值),请问各位高手如何删除呢?
<input type=button onclick=addNew() value=增加 class=button_index>
<input type="hidden" name=rowcount value="" >
<table cellspacing=1 cellpadding=1 border=0 width=100% id=tb>
<tr bgcolor="#FAF8DD">
<td width="50">序号
</td>
<td width="300">标准
</td>
<td width="120">对应加权值
</td>
<td width="150">删除
</td>
</tr>
</table>
</form>
<input type=button class="button" value=确定 onclick="javascript:tryDoSubmit()">
<script>var i =0;arr=new Array('#E8F5FF','white');
//创建表格
function createTable()
{
<%for(int j = 0; j<pti.length ; j++)
{%>
tr=document.all.tb.insertRow();
tr.style.backgroundColor=arr[<%=j%>%2];
tr.insertCell().innerText=(<%=j+1%>)+".";
tr.insertCell().innerHTML='<input type=text name=item'+<%=j+1%>+' value"> '
tr.insertCell().innerHTML='<input type=text name=weight'+<%=j+1%>+' value="">'
tr.insertCell().innerHTML='<a href=javascript:void(0) onclick=del()>删除</a>'
tr.insertCell().innerHTML='<input type="hidden" name=itemid'+<%=j+1%>+' value="" >'
i++;//令AddNew的时候能从当前的序号开始增加
<%}%>
}
//增加一行数据
function addNew()
{
tr=document.all.tb.insertRow();
tr.style.backgroundColor=arr[i%2];
tr.insertCell().innerText=(++i)+".";
tr.insertCell().innerHTML='<input type=text name=item'+i+' value=""> '
tr.insertCell().innerHTML='<input type=text name=weight'+i+' value="">'
tr.insertCell().innerHTML='<a href=javascript:void(0) onclick=del()>删除</a>'
}
//删除一行数据
function del()
{
document.all.tb.deleteRow(window.event.srcElement.parentElement.parentElement.rowIndex);
for(i=0;i<document.all.tb.rows.length-1;i++)
{
document.all.tb.rows[i+1].cells[0].innerText=(i+1)+".";
document.all.tb.rows[i+1].cells[1].children[0].name="item"+(i+1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~可能有问题
document.all.tb.rows[i+1].cells[2].children[0].name="weight"+(i+1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~同上
document.all.tb.rows[i+1].style.backgroundColor=arr[i%2];
}
}
//提交数据
function tryDoSubmit()
{
document.thisform.rowcount.value = i;
document.thisform.submit();
}
</script>
<script>
//调用方法创建表格</script>
<input type=button onclick=addNew() value=增加 class=button_index>
<input type="hidden" name=rowcount value="" >
<table cellspacing=1 cellpadding=1 border=0 width=100% id=tb>
<tr bgcolor="#FAF8DD">
<td width="50">序号
</td>
<td width="300">标准
</td>
<td width="120">对应加权值
</td>
<td width="150">删除
</td>
</tr>
</table>
</form>
<input type=button class="button" value=确定 onclick="javascript:tryDoSubmit()">
<script>var i =0;arr=new Array('#E8F5FF','white');
//创建表格
function createTable()
{
<%for(int j = 0; j<pti.length ; j++)
{%>
tr=document.all.tb.insertRow();
tr.style.backgroundColor=arr[<%=j%>%2];
tr.insertCell().innerText=(<%=j+1%>)+".";
tr.insertCell().innerHTML='<input type=text name=item'+<%=j+1%>+' value"> '
tr.insertCell().innerHTML='<input type=text name=weight'+<%=j+1%>+' value="">'
tr.insertCell().innerHTML='<a href=javascript:void(0) onclick=del()>删除</a>'
tr.insertCell().innerHTML='<input type="hidden" name=itemid'+<%=j+1%>+' value="" >'
i++;//令AddNew的时候能从当前的序号开始增加
<%}%>
}
//增加一行数据
function addNew()
{
tr=document.all.tb.insertRow();
tr.style.backgroundColor=arr[i%2];
tr.insertCell().innerText=(++i)+".";
tr.insertCell().innerHTML='<input type=text name=item'+i+' value=""> '
tr.insertCell().innerHTML='<input type=text name=weight'+i+' value="">'
tr.insertCell().innerHTML='<a href=javascript:void(0) onclick=del()>删除</a>'
}
//删除一行数据
function del()
{
document.all.tb.deleteRow(window.event.srcElement.parentElement.parentElement.rowIndex);
for(i=0;i<document.all.tb.rows.length-1;i++)
{
document.all.tb.rows[i+1].cells[0].innerText=(i+1)+".";
document.all.tb.rows[i+1].cells[1].children[0].name="item"+(i+1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~可能有问题
document.all.tb.rows[i+1].cells[2].children[0].name="weight"+(i+1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~同上
document.all.tb.rows[i+1].style.backgroundColor=arr[i%2];
}
}
//提交数据
function tryDoSubmit()
{
document.thisform.rowcount.value = i;
document.thisform.submit();
}
</script>
<script>
//调用方法创建表格</script>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货