2011-03-23 53 views
0

我使用jQuery Multiple File Upload Plugin ,我有以下幾點:試圖手動刪除多文件上傳文件

$(function(){ // wait for document to load 
    $('#attachFiles').MultiFile({ 
     list: '#attList', 
     STRING: { remove: '<img src="cross.gif" title="Remove this attachment" border="0">' }, 
     afterFileAppend: function(element, value, master_element) { 
      $(".amount").each(function(){ 
       var i  = $(this).attr("i"); 
       var curVal = $("#attachment_" + i).val(); 
       if($("#attachment_" + i).is(":checked") && curVal == "X") { 
        $("#attachment_" + i).attr("value", value); 
        $("#attachment_" + i).attr("title", "Attachment " + value + " linked"); 
        aCounter++; 
       }; 
      }); 
      if(aCounter==0) { 
       alert("You need to select..."); 
       //Remove should be here 
      } 
     } 
    }); 
}); 

如果我添加了一個名爲然後檢驗.pdf一隻叫test2.pdf我的目標是文件自動刪除test2.pdf如果我的aCounter變量爲0(這將意味着用戶沒有檢查任何額外的複選框名爲attachment_#

我似乎無法弄清楚如何刪除只是添加的文件 如果我理解正確,我添加的文件的值被添加到id =「attachfiles」,這是一個

<input type="file" name="userfile[]" id="attachFiles" class="file" size="1" accept="pdf|jpg|jpeg"> 

所以我假設我應該能夠以某種方式不知何故移除最近添加的項目。 任何幫助或指導將是偉大的。

+0

我從來沒有使用插件,但從文檔的外觀你不會找到你要找的內置。幸運的是,許可證允許你修改源代碼,所以我會熟悉插件的源代碼(並不是那麼糟糕),並添加一個方法來刪除文件。 – Samuel 2011-03-23 03:16:22

回答

0

我使用的jQuery多文件插件不使用一些數組來保存文件集。他們使用一系列的

<input type="file" ... style="position:absolute; left:-3000px;" /> 
<input type="file" ... style="position:absolute; left:-3000px;" /> 

在用戶選擇文件後隱藏的元素。顯示的輸入元素將被替換爲新的輸入元素。你的插件似乎也是如此。你應該能夠做一些選擇

$("#mydiv input[type='file']").last() 

或類似的東西,並從DOM移除它找到最新的文件。

您也可以在適當的刪除按鈕上觸發('點擊')。

+0

我看到這個頁面如何可能導致一些混淆:http://www.fyneworks.com/jquery/multiple-file-upload/#tab-Uploading我相信在事情的Javascript方面,有幾個輸入元素,上面已經描述過。一旦它在PHP端(我對此一無所知)進行處理,它將被視爲一組文件。因此,當您在該單個輸入元素上激活插件時,實際上正在生成許多插件。 – jbrookover 2011-03-23 03:57:19

+0

謝謝 - 我認爲這是我要領導的方向(你的第一個建議) - 一旦我全力以赴,我會回來的。 – Jason 2011-03-24 01:44:55