我想实现的效果是: 在上传文件时,单击添加按钮能够自动添加一个文件上传域。
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.   

    1.点击时是否有触发后台事件?后台事件会刷新页面,js的更改自然失效;
    2.克隆后指定一个新id试试我认为原因是触发后台事件的可能性很大,因为松开鼠标时出现了但很快消失(刷新的原因?),检查检查有没有什么地方使用了后台事件刚刚才发现你居然用的button标签,这个标签默认会提交页面,也会造成页面刷新,更改一下:
    <button onclick="insertRow()" type="button" style="border:1px #000000 solid;background-color:#f0f0f0;">添加</button>&nbsp;
    基本能确定是这个原因
      

  2.   

    嘿嘿,添加的时候的问题解决了,的确是这个问题,但是删除的时候又不响应了,帮忙看看吧,谢谢:
    function delRow(){
    var rowindex = document.all("addordel").length;
    if(rowindex>=2){
    event.srcElement.parentNode.removeNode(true);
    }
    }
    删除时的按钮也改了:<button onclick="delRow()" style="border:1px #000000 solid;background-color:#f0f0f0;" type="button">删除</button>&nbsp;
      

  3.   

    估计是event.srcElement在这儿用是不合适的,这个对象指向是触发事件的标签,就是button,
    和这个列表是没有关系的。
    function delRow(){
    var allrows=document.all("addordel");
    var rowindex = document.all("addordel").length;
    if(rowindex>=2){
    document.getElementById("change").removeChild(allrows[allrows.length-1]);
      }
    }
    改成这样试试