IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

input type="file"


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 106
    Par défaut input type="file"
    Bonjour,
    je développe une application web sous ASP.NET 2, je souhaite que l'utilisateur puisse allez chercher des photos entre autres présentes sur son disque. J'ai donc rajouter un champ input (type="file") pour récupérer le fichier, je l'upload ensuite, jusqu'ici tout allait bien.

    Cependant, je souhaite pouvoir changer le texte du bouton "Parcourir" car l'application est multilingue, j'ai donc trouver la solution suivante sur developpez.com dans la FAQ:

    Pour changer le texte d'un bouton de type file, on est obligé de "ruser" car il n'y a pas d'autres moyens.
    Voici le script :
    <script type="text/javascript">
    function getfile(){
    document.getElementById('hiddenfile').click();
    document.getElementById('selectedfile').value=document.getElementById('hiddenfile').value
    }
    </script>

    Et le corps de votre page:
    <body>
    <input type="file" id="hiddenfile" style="display:none" />
    <input type="text" id="selectedfile" />
    <input type="button" value="Select a file" onclick="getfile()" />
    </body>

    En fait, ce que l'on aperçoit sur la page ressemble à un champ de type File, mais en réalité, il s'agit d'un bouton et d'un champ de type texte. Ainsi, grâce à la fonction getfile(), on simule le clic sur le champ File que l'on a caché...

    Cette solution marche trés bien sur IE mais ne marche pas sous FireFox car la fonction click (appelée dans document.getelementbyId(monId).click()) n'est pas implémentée.

    Quelqu'un aurait-il une solution qui marche sous IE et Firefox (ce serait déjà pas mal avec ces deux browsers).

    Merci d'avance pour vos réponses,
    Jul

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Par défaut
    salut jul54
    A ce que je sache c'est que getElementById n'est pas implémenté sous MOZILLA, donc la solution idéale pour que ton script marche sur MOZILLA c'est de créer une fonction qui permettra d'implémenter ce genre de variable et l'intégrer à ton script.

    Voilà une piste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://mozilla.tlk.fr/doc03.php

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 106
    Par défaut
    Salut namstou3,
    merci pour ta réponse rapide mais je pense que getElementById fonctionne sous mozilla (au moins firefox 2) car j'utilise FireDebug pour debugger mon code javascript et si je mets un espion sur getElementById, j'obtiens bien mon élément en question.
    Nos sites étant pour des clients et non pour tout le monde, on peut leur imposer d'installer des versions récentes de IE et firefox (mais ils doivent pouvoir choisir entre les deux).

    Ton lien est quand même trés intéressant et me sera surement utile par la suite

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    La solution est là :
    http://www.quirksmode.org/dom/inputfile.html

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    pas besoin d'aller aussi loin... las solution a déja été donnée sur developpez, une petite recherche s'impose
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    La faq fournit le même lien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2004, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo