功能很简单,就是用js动态生成几个<input type="file" > var file_item = '<input name="file_'+uploaded_count+'" id="file_'+uploaded_count+'" type="file" size="55" />&nbsp;<input type="button" class="style_botton" onclick="del_file(\''+ uploaded_count+ '\')" value="  Delete  " /><BR>';
uploaded_count++;
$('#uploaded_count').val(uploaded_count);
$('#uploaded_files').append(file_item); 但是光添加几个文件上传field还不够,还要求能删除想删的。就是比如说删了第二个,第三个,第四个能自动往上移。
假如我现在动态生成了四个input type=file文本上传元素,每个后面加个br换行。我是这样删除的,得到想删的那个的编号,split <br>, indexOf 一下里面有没有file_编号,有的话就不要,没有的加入,然后重新赋给以前四个文件上传元素的div。这样是可以做到剩下的自动往上移,可是最严重的是,我刚才已经选择过文件的filed选择过的文件路径值全没了! 全被清空了!  意思就是说如果有一个已经选择了文件(input上显示了文件路径)的input filed,js怎么样才能再创建一个也选择了该文件的input field? 所选择的文件的信息没有在html里显示,复制html再显示时,所选文件信息已经丢失了。怎么解决哪。谢谢

解决方案 »

  1.   

    首先 删除 <input type='file'  是没有问题的,也很容易实现但你要想 删除一个 现有,在增加一个新的 同时新的 选择的文件是删除的所选的话这是不可以的 
      

  2.   

    <input class="button" type="button" style='color:#f00' value="点击添加更多图片" onClick="addMore()">
    <div id="more"></div>
    <script>
    function addMore() {
    var td = document.getElementById("more");
    var br = document.createElement("br");
    var input = document.createElement("input");
    var button = document.createElement("input");

    input.type = "file";
    input.name = "file";
    input.size = "35";

    button.type = "button";
    button.value = " 取  消 ";

    button.onclick = function() {
    td.removeChild(br);
    td.removeChild(input);
    td.removeChild(button);
    }
    td.appendChild(br);
    td.appendChild(input);
    td.appendChild(button);
    }
    </script>