Posez votre question Signaler

Changer le bouton browse d'un input type=file

nono - Dernière réponse le 30 janv. 2012 à 17:39
je desirerait changer le bouton browse d'un champ file par une image
Comment puis-je faire???
Merci
Lire la suite 

Changer le bouton browse d'un input type=file »

8 réponses
Réponse
+4
moins plus
En effet, cette solution existe,.. Mais.

Elle est développée ici : http://www.quirksmode.org/dom/inputfile.html [en] (désolé les non-anglicistes).
Et comme l'indique cette page, il existe de nombreux problèmes de compatibilité avec les différents navigateurs.

La raison est que chaque navigateur gère à sa façon l'input file et sa taille varie complètement de IE à Firefox et surtout de Safari. Hors la solution présentée ici suppose que l'input fait toujours la même taille.
Ajouter un commentaire
Réponse
+3
moins plus
Vous pouvez faire comme suit :
- Créer un faux formulaire avec un champ text, une icone browse et une icone submit
- Dans le même formulaire, placer un vrai champ file par-dessus les 2 précédents (text/browse), grâce au span z-index et au style opacity.
- Régler éventuellement les positions relative/absolute et top/middle/bottom/left/right:Xpx de chacun des 2 spans, en fonction des size des input.

Ce qui donne quelque chose comme :
<FORM name="myform" action="page.html" method="get" enctype="multipart/form-data">
  <SPAN stype="position:relative;z-index:0;">
    <INPUT type="text" size=12 name="myFileText">
    <INPUT type="image" src="browse.gif" border="0">
    <INPUT type="image" name="submit" value="fileValue" src="submit.gif">
    <SPAN STYLE="position:absolute;middle:0px;left:0px;z-index:1;">
      <INPUT type="hidden" name="fileOp" value="fileValue">
      <SCRIPT type="text/javascript">
        function fillForm() { document.myform.myFileText.value=document.myform.upName.value; }
      </SCRIPT>
      <INPUT type="file" style="-moz-opacity:0;filter:alpha(opacity:0);-khtml-opacity:0;"
        size=1 name="upName" onkeyup="fillForm();" onmouseout="fillForm();">
    </SPAN>
  </SPAN>
</FORM>

Sylvain / http://www.marliere.org/
Ajouter un commentaire
Réponse
+2
moins plus
Euh, à mon avis tu débutes...

Tu n'es pas obligé de faire un input type etc...
Tu peux très bien créer ton propre bouton (deux images avec survol)

Sur l'échiquier de la vie, j'ai choisi d'être le Fou,
parce que je ne suis pas Cavalier. Xadrez
Bobinours- 26 mai 2002 à 00:34
Je rejoins nono sur les points 1, 2, 4, 5 :o) (j'hésite pour le 3)

La réponse est simple, c'est imposible de changer l'apparence d'un input type="file" en HTML.

Il y aurait une possibilité avec des ActiveX, mais cette solution n'est pas compatible.

-= Bobinours =-
Bobinoursnono - 26 mai 2002 à 00:48
J'ai retrouvé le lien parlant de cela, mais je dis préviens que je suis contre cette solution : http://www.allhtml.com/forum/index.php?t=l&f=2&i=112081

-= Bobinours =-
math 2000- 22 juil. 2009 à 19:15
voir ici comment changer l'image de fond d'un bouton type file
http://www.commentcamarche.net/forum/affich 13272582 modifier bouton parcourir bouton type file?#6
Ajouter un commentaire
Réponse
+2
moins plus
Il y a très simple : il faut rendre le input file invisible:

<input type="file" id="monInputFile" style="visibility:hidden"/>


puis créer son propre bouton avec un événement onclick (type jquery ici) qui va ouvrir le sélecteur du navigateur sans dévoiler le inputfile:

<input type="button" style="border:1px solid #000;width:100px;height:30px;background-color:#CCC;" onclick="$('#monInputFile').click();"/>
Ajouter un commentaire
Ce document intitulé « Changer le bouton browse d'un input type=file » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?