2014-11-26 2 views
0

Если у меня есть этот код на моей странице, то он работаетПолучить файл из поля ввода в Jquery

index.html

<input type="file" name="data[Post][picture]" hidden="1" onchange="uploadPhoto(this.files)" id="PostPicture"/> 

script.js

function uploadPhoto(files){ 

    //TODO 

    console.log(files); 
} 

но этот код требует, чтобы я положить uploadPhoto() функция из jquery $() функция. У меня есть определенные проблемы с переменной областью, поэтому я не хочу получать свою функцию за пределами функции document.ready.

для этого я сделал что-то вроде этого

$(function(){ 
    var uploadPhoto = function(){ 


     //TODO 

     console.log($('#PostPicture').files); 
    }; 

    $('#PostPicture').on('change',uploadPhoto); 
}); 

и журналы в консоли undefined.

ответ

0

JQuery результаты набор не имеет атрибут files, вы должны получить доступ к элементу напрямую:

var files = $("#fileInput")[0].files; 

или

var files = $("#fileInput").prop('files'); 

Источник: https://stackoverflow.com/a/13747921/441907

+0

Спасибо, это сработало. –

Смежные вопросы