2012-04-26 54 views
6

我想读出我的多重上传表单的文件名,但是Javascript只是添加了第一个项目。访问多个文件上传表单的文件名

<input name="upload[]" id="upload" type="file" multiple="multiple"> 
$("#upload").change(function() { 
    $("#upload").each(function() { 
     $("#upload_prev").append(this.value); 
    }); 
}); 

回答

11

多文件上传字段没有很好的jQuery的支持。你最好的选择是恢复到原生的JavaScript访问files集合。试试这个:

$("#upload").change(function() { 
    var files = $(this)[0].files; 
    for (var i = 0; i < files.length; i++) { 
     $("#upload_prev").append(files[i].name); 
    } 
}); 

Example fiddle

而且,这里的一对夫妇与您的例子中,已修复的问题,如重新选择时,清除文件的以前的列表,并附加文件名上一个新的提琴line:http://jsfiddle.net/Vs5Hk/3/

+0

你可以改变这行'var files = $('#upload')[0] .files;'到'var files = $(this)[0] .files;' – 2015-12-03 05:19:38

+0

@ThomasTaylor You'对 - 谢谢。 – 2015-12-03 07:44:16

+0

感谢它真的帮助 – 2016-11-03 01:13:39