web-dev-qa-db-fra.com

Comment utiliser jQuery pour obtenir la valeur actuelle d'un champ de saisie de fichier

D'après ce que j'ai préparé, vous devriez pouvoir utiliser la propriété 'value' d'un champ de saisie de fichier pour obtenir le chemin actuellement défini pour ce champ. Mais quand je fais ça:

 $('#fileinput').value()

Je deviens «indéfini». L'ID du champ est défini sur "fileinput", j'en suis sûr. Quelqu'un at-il des idées sur pourquoi cela pourrait ne pas fonctionner pour moi?

Et au fait, cela fonctionne:

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

Je suppose donc que cela a quelque chose à voir avec le fonctionnement de jQuery que je ne comprends pas bien. 

Merci!

20
Karim

Vous devez utiliser val plutôt que valeur.

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

Dans Chrome 8, le chemin d'accès est toujours "C:\fakepath \" avec le nom de fichier correct.

21
Thomas

son pas .val () si vous voulez obtenir le fichier /home/user/default.png il obtiendra avec .val () juste default.png

6
CoaPsy

Je ne pense pas qu'il existe un moyen légitime d'accéder à cela via le DOM. Les navigateurs ont récemment verrouillé leur sécurité pour empêcher les téléchargements à la volée.

3
Daniel A. White

Je pense que ça devrait être 

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

Jquery fonctionne différemment dans IE et dans les autres navigateurs. Vous pouvez accéder au dernier nom de fichier en utilisant

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

Dans IE l'alerte ci-dessus indiquera le chemin complet, mais dans les autres navigateurs, elle ne donnera que le nom du fichier. 

1
AKS

Pourriez-vous aussi faire

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

0
Collin White

J'ai essayé ça et ça marche:

 yourelement.next().val();

yourelement pourrait être:

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

bonne chance!

0
Devmaster78