JS动态新增多行,删除一行后.再新增.给表单赋的值就出错了.高手帮看一下啊!!? 400 报错
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script language="javascript">
function check() {
var newTr = table2.insertRow();
var newTd01 = newTr.insertCell();
var newTd02 = newTr.insertCell();
var table = document.getElementById("table2");
var num = table.rows.length;
var i = num-1;
var x = i-1
var sp_bianma="sp_bianma"+x;
table.rows[i].cells[0].innerHTML = "<input type='button' value='删除'onClick='del(this);'/>"+x+"";
table.rows[i].cells[1].innerHTML = "<input type='text' name='"+sp_bianma+"' id='"+sp_bianma+"'/>";
xu();
document.getElementById(""+sp_bianma+"").value = x;
}
function del(obj){
var m = obj.parentElement.parentElement.rowIndex;
var table1 = document.getElementById("table2");
table1.deleteRow(m);
xu();
}
function xu(){
var table = document.getElementById("table2");
var num = table.rows.length;
for(xx=1;xx<num-1;xx++){
i = xx +1
table.rows[i].cells[0].innerHTML = "<input type='button' value='删除'onClick='del(this);'/>"+xx+"";
table.rows[i].cells[1].getElementsByTagName("input")[0].name = "sp_bianma"+xx;
table.rows[i].cells[1].getElementsByTagName("input")[0].id = "sp_bianma"+xx;
}
}
</script>
<body>
<input name="" type="button" onClick="check()" />
<table width="200" border="2" cellpadding="1" id="table2" name="table2">
<tr>
<td width="44">序号</td>
<td width="168">商品编号</td>
</tr>
</table>
</body>
</html>
兄弟,别的不说了,你能给添加个注释吗?那里是给表单赋值的方法啊??######好乱的代码######
你这样只能在IE下运行,都不符合W3C标准。inserRow和inserCell需要加一个下标参数,不然非IE浏览器跑不起来。
实际情况也是这样,我试了IE下正常,其它浏览器报错。
######谁能帮整一下不啊!我实在弄不好了######删除中间一个,再新增,就没值???######是的啊!弄了很久都搞不定 帮帮忙吧######你从0开始,假设你总共3个,你删除第2个,那么,那么新增的,id是多少?是“sp_bianma2”,而id为这个的,你前面已经创建过,就是没删除前的第三个。那么,你赋值的时候,由于有2个id一样的,js只会取你前面那个,所以,你后面新建的这个id重复的,就会没赋值!
计算x的时候,不要根据你的行数去,和你前面的序号区分开,你可以弄个一直增加的全局变量,不要取值重复就好了。
序号是序号,id和值是要变的,不要回去了!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。