-3

php 代码,这是一个使用 javascript 创建输入,然后将上传的文件发布到下一页的小功能。它在 IE 上运行良好,但在 FF 上失败。它只会传递第一个也是唯一一个不是由 js addMore() 创建的文件。IE: Array([name] => Array([0] => j1.jpg) )

FIREFOX Array([name] => Array([0] => j1.jpg 1 => j2.jpg 2 => j3.jpg)

有朋友告诉我js DOM创建的新节点不适合旧帖子...DOM协议...所以FF无法识别...是吗?怎么改,谢谢

//   html content


<td id="div1">
<input name="upload[]" id="upload" type="file" style="width:250px;" />                  
<input name="button" type="button" onClick="addMore()" value="+">
<br /> to add more files, please click the "+" button
</td>


//   js content
<script language="javascript">
    var addMore = function()  
 {  

     var div = document.getElementById("div1");  
     var br = document.createElement("br");  
     //var input = document.createElement("input");
     var input = navigator.userAgent.indexOf("MSIE")>0 ? document.createElement("<input name=\"upload[]\">") : document.createElement("input");
     var button = document.createElement("input");  

     input.setAttribute("type", "file");  
     input.setAttribute("name", "upload[]");
     input.setAttribute("id", "upload");
     button.setAttribute("type", "button");  
     button.setAttribute("value", "-");  
     button.onclick = function()  
     {  
         div.removeChild(br);  
         div.removeChild(input);  
         div.removeChild(button);  
     }  
     div.appendChild(br);  
     div.appendChild(input);  
     div.appendChild(button);  

}  
</script>
4

1 回答 1

0

尝试 jQuery 来做到这一点。您不需要编写所有这些代码。jQuery.clone() 会完成这项工作。如果您需要更花哨的东西,那么您可以使用这个插件来简单地通过跨浏览器支持来实现所需的结果。这是插件的演示

于 2013-03-20T08:01:00.827 回答