Karim
Karim

Reputation: 18647

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!

Upvotes: 31

Views: 167074

Answers (8)

Devmaster78
Devmaster78

Reputation: 1

I've tried this and it works:

 yourelement.next().val();

yourelement could be:

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

good luck!

Upvotes: 0

AKS
AKS

Reputation: 19

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.

Upvotes: 1

Thomas
Thomas

Reputation: 271

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

Upvotes: 27

Collin White
Collin White

Reputation: 680

Could you also do

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

Upvotes: 0

CoaPsy
CoaPsy

Reputation: 61

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

Upvotes: 6

Will
Will

Reputation: 1014

You need to use val rather than value.

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

Upvotes: 63

Dmitri S.
Dmitri S.

Reputation: 3448

I think it should be

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

Upvotes: 2

Daniel A. White
Daniel A. White

Reputation: 191058

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.

Upvotes: 3

Related Questions