如何使用jQuery获取多文件输入的值?

时间:2012-01-11 03:24:30

标签: jquery html input

要使用jQuery获取<input type="file" name="upload">的值,您可以使用$('input').val()

但是,使用相同的方法获取<input type="file" name="upload[]" multiple>(多文件输入)的值只返回一个文件,而不是所有文件。

有不同的方法吗?

3 个答案:

答案 0 :(得分:2)

尝试控制台进入

document.forms[index].elements[index].files

通过它们缓存值循环

答案 1 :(得分:1)

我使用了其他帖子中的一些代码......

$('input[type=file]').val()

..并添加了每个特定文件输入字段的ID。下面的代码从输入中获取路径,仅从中提取文件名,并在两个不同文件上载字段的不同字段中显示该值。如果你有很多,你可以根据这段代码创建一个循环:

$('#File1').change(function(){ // when you leave the File1 form field
  var filename1 = $('input[type=file][id=File1]').val().split('\\').pop(); // get just the filename
  $('#DL_Filename1').val(filename1); // and place it in the DL_Filename1 box
}); // end change

$('#File2').change(function(){ // when you leave the File2 form field
  var filename2 = $('input[type=file][id=File2]').val().split('\\').pop(); // get just the filename
  $('#DL_Filename2').val(filename2); // and place it in the DL_Filename2 box
}); // end change

答案 2 :(得分:0)

那是因为,当你使用$('input').val()时,它只返回第一个输入的值。您需要循环以获取所有这些值。请参阅以下代码:

 var $uploads = $('input');

 $uploads.each(function() {

     console.log($(this).val());

 });