JQuery – 获取input =’file’中的所有文件名
我有我希望获得此输入中的所有文件名。 我见过一些例子,但它只获得了第一个文件的名称。
$ ('#basicUploadFile').live ('change', function () { alert($ ('#basicUploadFile').val()); });
我怎样才能做到这一点? 谢谢。
var files = $('#basicUploadFile').prop("files")
files
将是一个FileList对象。
var names = $.map(files, function(val) { return val.name; });
现在names
是一个字符串数组(文件名)
FileAPI参考
files属性引用
jsFiddle演示
您仍然可以将文件作为FileList
集合进行访问,而无需过度使用jQuery
。 我创建了一个快速的jsFiddle,演示了如何使用FileList
和File
对象从输入中获取信息。 这是一个片段:
$('#basicUploadFile').live('change', function () { for (var i = 0; i < this.files.length; i++) { alert(this.files[i].name); alert(this.files.item(i).name); // alternatively } });
我用它在控制台中显示所有文件名:
var input_file = $("#input_file"); input_file.on("change", function () { var files = input_file.prop("files") var names = $.map(files, function (val) { return val.name; }); $.each(names, function (i, name) { console.log(name); }); });
function uploadAttachment() { debugger; var files = $('#selectAttachment').prop('files'); var names = $.map(files, function (val) { return val.name; }); }
live
在很多版本之前已被弃用,并在v1.9中被删除。 您可以使用.on()
执行。
请参阅下面的实例:
$('#basicUploadFile').on('change', function() { for (var i = 0; i < this.files.length; i++) { console.log(this.files[i].name); } });