How to use jQuery to get the current value of a file input field

From what I've ready you should be able to use the 'value' property of a file input field to get the currently set path of that field. But when I do this:

 $('#fileinput').value()

I get 'undefined'. The ID of the field is set to "fileinput" I'm sure. Does anyone have any thoughts on why this might not be working for me?

And by the way, this works:

var d = document.getElementById('AttachmentFile');
alert(d.value);

So I guess this has something to do with the way jQuery works that I don't fully understand.

Thanks!

Answers


You need to use val rather than value.

$("#fileinput").val();

In Chrome 8 the path is always 'C:\fakepath\' with the correct file name.


its not .val() if you want to get file /home/user/default.png it will get with .val() just default.png


I don't think there is any real legitimate way to access this via the DOM. It would be a security risk that browsers have of late locked down on to prevent drive-by uploads.


I think it should be

 $('#fileinput').val();

Jquery works differently in IE and other browsers. You can access the last file name by using

alert($('input').attr('value'));

In IE the above alert will give the complete path but in other browsers it will give only the file name.


Could you also do

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


I've tried this and it works:

 yourelement.next().val();

yourelement could be:

$('#elementIdName').next().val();

good luck!


Need Your Help

How to set fixed continuous colour values in ggplot2

r ggplot2

I'm plotting a lot of graphics and I'd like for all of them to have the same colour scale so I can compare one to another. Here's my code:

Convert bytes/UInt8 array to Int in Swift

arrays swift int byte

How to convert a 4-bytes array into the corresponding Int?