尝试从Multifile上载手动删除文件

时间:2011-03-23 03:09:05

标签: javascript jquery

我正在使用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
            }
        }
    });
});

如果我添加一个名为test.pdf的文件,那么一个名为test2.pdf的目标是在我的aCounter变量为0时自动删除test2.pdf(这意味着用户没有勾选任何名为attachment_的其他复选框

我似乎无法弄清楚如何只删除添加的文件。 如果我理解正确,我添加的文件的值将添加到id =“attachfiles”,这是一个

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

所以我假设我应该能以某种方式以某种方式删除最近添加的项目。 任何帮助或指导都会很棒。

1 个答案:

答案 0 :(得分:0)

我使用的jQuery Multiple File插件不使用某个数组来保存文件集。他们使用了一系列

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

用户选择文件后隐藏的元素。显示的输入元素将替换为新元素。您的插件似乎也是如此。你应该能够通过做一些选择器

找到最新的文件
$("#mydiv input[type='file']").last()

或类似的东西,并将其从DOM中删除。

您也可以在相应的删除按钮上执行触发(“点击”)。