当选择文件时,Jquery 显示一个或多个文件名

lin*_*NES 1 javascript jquery

我试图在用户提交文件之前显示一个或多个文件名,但到目前为止,如果用户决定选择多个文件,我只能显示一个文件名,而不是多个文件名。

jQuery

$(function() {
 $('input:file').change(function(){
     var fileName = $(this).val();
     $('.filenames').html('<div class="name">' + fileName + '</div>');
 });
});
Run Code Online (Sandbox Code Playgroud)

Moh*_*sef 5

您可以使用for循环this.files.length

$(function() {
 $('input:file').change(function(){
    for(var i = 0 ; i < this.files.length ; i++){
      var fileName = this.files[i].name;
      $('.filenames').append('<div class="name">' + fileName + '</div>');
    }
 });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="file" name="files[]" multiple />
<div class="filenames"></div>
Run Code Online (Sandbox Code Playgroud)

$.each更新this.files :08/02/2020

$(function() {
  $('input:file').on('change' , function(){
    $.each(this.files , (i , v) => {
      var filename = v.name;
      $('.filenames').append('<div class="name">' + filename + '</div>');
    });
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="file" name="files[]" multiple />
<div class="filenames"></div>
Run Code Online (Sandbox Code Playgroud)