2015-08-20 17 views
0

another question中的完整描述。克隆文件輸入提交文件在IE8中沒有文件名,文件名在FF中

我對克隆文件輸入領域的工作獲得多個文件上傳到IE 8,我使用這些代碼的工作:

function addField(){ 
     if ($('form input:file').last().val() != "" ){ 
     var lastfile = $('form input:file').last(); 
     var countfile = ($('form input:file').length)+1; 
     var always = $('#filesUploadId'); 
     var cloned = always.clone(); 
     cloned.attr("name", "correoForm.filesUpload"); 
     cloned.attr("id", "file_"+countfile); 
     cloned.insertAfter(lastfile); 
} 

但是,它是在IE 8和FF的工作不同,但我希望他們在兩個工作。

如果我在IE8中選擇了1.txt,2.jpg,3.zip,我有三個文件(實際上是四個,但最後一個沒有文件名,所以沒關係),但是在FF中我有4,它們是1,2,3和1.txt。重複1.txt。

所以:

  • 爲什麼我沒有拿到在IE 8中的文件名?雖然它在工作,但我想問一下。
  • 爲什麼我可以在FF中擁有文件名?
  • 如何獲取「全部清除」功能,刪除除第一個之外的所有其他文件輸入?我想保留第一個文件輸入字段及其樣式和事件打包程序,但刪除其內容。如果複製文件輸入將導致文件在FF中重複,則複製第一個文件輸入將不會刪除其內容。

我正在爲此做一個木板。希望今天能夠開展工作。

回答

0

我不知道是否有幫助,但是當我有這樣的一個形式,我用了一個數組作爲文件輸入的名稱...我將解釋自己在代碼:

cloned.attr("name", "correoForm.filesUpload[]"); 

我在名稱的末尾添加了[],所以不是具有相同名稱的3個輸入,而是可以隨後僅作爲一個輸入來處理,它將是該輸入的數組。

,並去除多餘的輸入,這樣的事情,(我看到你正在使用jQuery)

function removeExtraInputs() { 
    $('input[type=file]').not(':first').remove(); 
} 
+0

謝謝,但我用struts 2,它處理單獨同名稱字段。剩下的就是在Action類中用這個名稱定義一個數組。所以也許這對我來說不是必要的。除去部分我會嘗試。 – FaithReaper