2011-03-23 61 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