如何将文件输入值传递给JQuery函数?

时间:2014-03-13 12:16:44

标签: jquery html ajax

我想将文件输入值传递给jQuery函数,它可以是多个文件。那我该怎么做呢? 下面是我的代码。

HTML

<input id="images" name="images[]" placeholder="" class="form-control input-md" type="file" accept="image/*" multiple/>

的jQuery

 $('#images').change(function(){
   var input = document.getElementById("images");

     uploadImages(input); 
/* what should I pass to this function . this function have $.ajax method, which will upload images folder */ 


   });

4 个答案:

答案 0 :(得分:0)

您可以在数组中按名称获取所有文件输入,例如 您可以使用.map()功能

var fileNames = $('input[name="images[]"]').map(function(){return $(this).val();}).get();

并在您的函数中视为数组。 请参阅FIDDLE

答案 1 :(得分:0)

试试这个:

<input type="file" name="files" multiple="multiple" />
<div id="files-selected"></div>


$(':file').change(function () {
$('#files-selected').text(this.files.length + " file selected");
alert(this.value); });

答案 2 :(得分:0)

jQuery还没有从<input type="file">访问数据的方法,但您可以将File interface用于现代浏览器(FF7 +,Chrome13 +,IE10 +)。

如果您只想通过AJAX提交数据,我可以使用FormData interface,这在我看来更容易。 MDN甚至在how to use it with jQuery上有例子。

答案 3 :(得分:0)

检查此 demo jsFiddle

JQuery的

$(document).ready(function() {
  $('#FileInput').change(function(){
    var numOfFile = document.getElementById('FileInput');

    for (var i = 0; i < FileInput.files.length; ++i) {
       var name = FileInput.files.item(i).name;
       alert("here is a file name: " + name);
    }
  });
});

HTML

<input type='file' id='FileInput' multiple='multiple'></input>

希望这对你有帮助!