日期:2014-05-16  浏览次数:20370 次

cloneNode()和appendChild()的问题。坐等。。。。
我想实现的效果是: 在上传文件时,单击添加按钮能够自动添加一个文件上传域。
js代码: function insertRow(){
var rowindex = document.all("addordel").length;
if(rowindex>=5){
alert("一次只能上传5个文件!");
return false;
}
var obj = document.getElementsByName("addordel") [0].cloneNode(true);
document.all("change").appendChild(obj);
  }
添加按钮处的代码:
  <button onclick="insertRow()" style="border:1px #000000 solid;background-color:#f0f0f0;">添加</button>&nbsp;
添加的地方是:
  <ul id="change"><li id="addordel" name="addordel">........ </li></ul>
但是现在的效果是,点击添加的时候可以创建,但是只是在鼠标松开的那一瞬间有,接着就没有了,不知道错误在哪里,希望知道的人能够指点一下,不胜感激。。。谢谢。。。

------解决方案--------------------
1.点击时是否有触发后台事件?后台事件会刷新页面,js的更改自然失效;
2.克隆后指定一个新id试试

我认为原因是触发后台事件的可能性很大,因为松开鼠标时出现了但很快消失(刷新的原因?),检查检查有没有什么地方使用了后台事件

刚刚才发现你居然用的button标签,这个标签默认会提交页面,也会造成页面刷新,更改一下:
<button onclick="insertRow()" type="button" style="border:1px #000000 solid;background-color:#f0f0f0;">添加</button>&nbsp;
基本能确定是这个原因