项目中遇到的一个问题,要点击
按钮,复制一个层的表单到其下面.
比如有个表单:
点击增加后,新增一个一样的表单.这时候就可以用Clone()来实现.
所以这个时候就可以用attr()去修改clone的id,name等参数.
这样id和name就会随着增加而改变.
点击 :1018
按钮,复制一个层的表单到其下面.
比如有个表单:
<div id="d1">
<div id="d2">
姓名:<input id="tn1" name="tn1" type="text" />
年龄:<input id="ta1" name="ta1" type="text" />
</div>
</div>
点击增加后,新增一个一样的表单.这时候就可以用Clone()来实现.
<script type="text/javascript">
function cloneDiv(){
var clone = $("#d2").clone();
var father = $("#d1");
$(clone).appendTo(father);
}
</script>
但是这时候就有个问题,clone增加之后的元素,id,name等属性跟被复制的元素都是一样的.这时候如果用request.form取值的话,这样后台取值就会出问题.所以这个时候就可以用attr()去修改clone的id,name等参数.
var child = father[0].childElementCount+1;
//更改div的ID属性
var did = $(clone).attr("id",function(){
var di = this.id;
di = di.replace("2",child+1);
return di;
});
$(clone).attr("id",did.id);
$(clone).find("input").each(function(){
//这里更改input:text的id,name等属性
var tid = $(this).attr("id",function(){
var id = this.id
id = id.replace("1",child);
return id;
});
$(this).attr("id",tid.id);
var tna = $(this).attr("name",function(){
var na = this.name;
na = na.replace("1",child);
return na;
});
$(this).attr("name",tna.name);
});
这样id和name就会随着增加而改变.
点击 :1018