【问题标题】:Get all values of multiple file select with jQuery [duplicate]使用jQuery获取多个文件选择的所有值[重复]
【发布时间】:2012-12-01 05:07:53
【问题描述】:

可能重复:
Retrieving file names out of a multi-file upload control with javascript

知道了:

<input type="file" name="file1" multiple="multiple" />

在 jQuery 中使用它:

$("input[name=file1]").change(function() {
    $("input[name=file]").val($("input[name=file1]").val());
});

现在我的问题是:它只给出第一个选定的文件,我想拥有它们...怎么做? 谢谢!

【问题讨论】:

  • @bvl 确保单击正确答案旁边的复选标记,否则最终人们将停止帮助您。不是吠叫,只是通知:)

标签: jquery file


【解决方案1】:

虽然我在 cmets 中链接到了一个可能的欺骗,但它是一个纯 JavaScript 解决方案。如果你喜欢,这里有一个 jQuery 版本:jsFiddle example

$("input[name=file1]").change(function() {
    var names = [];
    for (var i = 0; i < $(this).get(0).files.length; ++i) {
        names.push($(this).get(0).files[i].name);
    }
    $("input[name=file]").val(names);
});​

【讨论】:

  • $('#multiFileSelector').files 给你一个Files的数组
  • $('#multiFileSelector')[0].files
【解决方案2】:

您正在寻找“文件”属性,它返回一个文件列表:

var ele = document.getElementById($(this).attr('id'));
var result = ele.files;

Here is the Fiddle for it

【讨论】:

    【解决方案3】:

    使用.length() 获取文件数,然后使用while 语句对所有文件执行相同操作,每次将计数增加1 :)

    【讨论】:

    • 我不确定我是否做对了。所以我应该使用$("input[name=file1]").length?这也给了我 1 作为输出。
    • 是的,例如 i=0; while (i
    猜你喜欢
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 2011-09-21
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 2014-06-29
    相关资源
    最近更新 更多