<input type="file" value="Browse" name="avatar" id="id_avatar" />
J'ai essayé de modifier le value
mais ça ne marche pas. Comment personnaliser le texte du bouton ?
<input type="file" value="Browse" name="avatar" id="id_avatar" />
J'ai essayé de modifier le value
mais ça ne marche pas. Comment personnaliser le texte du bouton ?
Utilisez Style de fichier Bootstrap qui est utilisé pour styliser les champs de fichier des formulaires. Il s'agit d'un plugin pour une bibliothèque de composants basée sur jQuery appelée Twitter Bootstrap.
Exemple d'utilisation :
Inclure :
<script type="text/javascript" src="js/bootstrap-filestyle.min.js"> </script>
Via JavaScript :
$(":file").filestyle();
Via les attributs de données :
<input type="file" class="filestyle" data-classButton="btn btn-primary" data-input="false" data-classIcon="icon-plus" data-buttonText="Your label here.">
Ça n'a pas l'air de fonctionner pour moi. Il affiche toujours les boutons par défaut du briseur. De plus, la démo à github.com/markusslima/bootstrap-filestyle.git ne fonctionne pas non plus - tous les exemples montrent les boutons par défaut. Est-ce que quelque chose m'échappe ?
@Tony Uhh.... qu'est-ce qui vous fait penser que Bootstrap n'utilise pas le "wacky <img/> hack" en dessous aussi ? :-)
@Ya pouvez-vous dire quel navigateur et sa version ? Testé maintenant sur Chrome Version 43.0.2357.130 (64-bit) sur Linux et tous les exemples fonctionnent parfaitement.
Vous pouvez mettre une image à la place, et faire comme ceci :
HTML :
<img src="/images/uploadButton.png" id="upfile1" style="cursor:pointer" />
<input type="file" id="file1" name="file1" style="display:none" />
JQuery :
$("#upfile1").click(function () {
$("#file1").trigger('click');
});
CAVEAT : Dans IE9 et IE10 si vous déclenchez le onClick dans une entrée de fichier via javascript, le formulaire sera signalé comme 'dangereux' et ne pourra pas être soumis avec javascript, pas sûr qu'il puisse être soumis traditionnellement.
C'est une solution intelligente. Ne pourriez-vous pas également le faire avec un élément <button> ?
@Code Commander -Merci, et oui, vous pouvez le faire avec tous les éléments que vous voulez, mais le plus courant est l'élément <image>. Il suffit de se débarrasser du bouton+champ de texte de la "file input"...
Juste un avertissement à tous ceux qui utilisent le système ci-dessus, certains navigateurs mobiles désactivent le déclenchement des clics de saisie de fichiers par programmation. Plus précisément, Android 4 pour le Galaxy S III
Le texte "upload file..." est prédéfini par le navigateur et ne peut pas être modifié. La seule façon de contourner ce problème est d'utiliser un composant de téléchargement basé sur Flash ou Java, tel que swfupload .
Ou en parcourant les codes sources des navigateurs, au moins pour les navigateurs Open Source.
Il pourrait s'agir de la réponse à une autre question, du type "Pourquoi le contenu de la valeur 'VALUE=" ? C:\someFile.txt "' pour un champ de saisie de type fichier, 'TYPE="FILE"', ignoré par le navigateur ?") : stackoverflow.com/questions/1342039
EDIT : Je vois maintenant par les commentaires que vous demandez le texte du bouton, et non le chemin du fichier. C'est ma faute. Je vais laisser ma réponse originale ci-dessous au cas où quelqu'un d'autre qui tomberait sur cette question l'interpréterait de la même façon que moi.
2e EDIT : J'avais supprimé cette réponse car j'ai décidé que j'avais mal compris la question et que ma réponse n'était pas pertinente. Cependant, les commentaires dans une autre réponse ont indiqué que les gens voulaient toujours voir cette réponse, alors je la supprime.
MA RÉPONSE ORIGINALE (Je pensais que l'OP demandait le chemin, pas le texte du bouton) :
Cette fonction n'est pas prise en charge pour des raisons de sécurité . Le navigateur Opera prenait en charge cette fonctionnalité, mais elle a été supprimée. Pensez à ce qui serait possible si cette fonction était prise en charge ; vous pourriez créer une page avec une entrée de téléchargement de fichier, la pré-remplir avec un chemin d'accès à un fichier sensible, puis soumettre automatiquement le formulaire en utilisant le javascript déclenché par la balise onload
événement. Cela se produirait trop rapidement pour que l'utilisateur puisse faire quoi que ce soit.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Parlez-vous du nom de fichier ou du texte du bouton ?
0 votes
Duplicata possible de Comment renommer le bouton "browse" du HTML ?
0 votes
Liés : stackoverflow.com/q/210643
3 votes
Il existe des pseudo-éléments comme
::file-selector-button
maintenant. Peut-être qu'ils peuvent être utilisés d'une manière ou d'une autre.