2012-04-26 55 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