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

jQuery Discussion :

Equivalent à DOMAutoComplete pour IE 7


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 77
    Par défaut Equivalent à DOMAutoComplete pour IE 7
    Bonjour,

    Dans un formulaire de login, je simule l'attribut placeholder avec des div que je superpose à mes champs input.
    Aucun problème, si l'utilisateur saisie lui-même son login et son mot de passe par contre ça se complique si le formulaire est rempli automatiquement par le navigateur.
    Pour firefox, je peux utiliser DOMAutoComplete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $(document).bind('DOMAutoComplete',function(e){ 
          ...  // hide placeholder
    });
    mais je ne trouve pas de solution pour IE 7

    (pour info, il s'agit d'une appli intranet et IE7 est le navigateur installé par défaut sur tous les postes )

    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    je simule l'attribut placeholder avec des div que je superpose à mes champs input.


    C'est pas comme ça qu'on simule un placeholder...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $('input').on({
        focus: function(){
            if(this.value == this.defaultValue){
                this.value = '';
            }
        },
        blur: function(){
            if(this.value == ''){
                this.value = this.defaultValue;
            }
        }
    });
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    En fait Bovino il existe plusieurs façons de simuler un placeholder. Celle que tu as cité est la plus utilisée, mais en voilà une autre qui ressemble plus à celle de hotline:
    https://github.com/jackfranklin/HTML...eholder-fix.js

    Je ne sais pas si IE7 déclenche un évènement précis après autocomplétion. Mais il y a peut-être d'autres solutions :
    - voir si l'autocomplétion déclenche un onchange
    - binder au window.onload

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Oui, il y a plusieurs façons de simuler un placeholder, mais je n'ai jamais vu d'exemple
    avec des div que je superpose à mes champs input.
    Pour ce qui est de l'événement DOMAutoComplete (qui est spécifiques aux add-ons FF...), je vois pas en quoi il peut avoir un rapport avec le fonctionnement d'un placeholder...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 77
    Par défaut
    Merci pour vos réponses.

    Pour expliquer un peu mon raisonnement, j'ai lu que l'on pouvait simuler un placeholder avec un label que l'on positionne en absolute sur le champ, donc je me suis dis que plutôt que d'utiliser un label en "display:inline-block" une div ferait l'affaire.
    L'avantage que je vois à cette méthode par rapport à celle rappelée par BOVINO est que sur un champ de type password, j'ai bien du texte et non pas des étoiles (mais il y a peut-être une solution pour éviter ça).

    Mais là ou je rencontre un problème c'est lorsque le login et le mot de passe sont enregistrés et restitués par le navigateur (autocomplete). Ils sont alors superposés aux placeholder. En capturant DOMAutocomplete, je cache mes faux placeholder lorsque FF remplit automatiquement les champs mais je n'ai pas de solution pour un autocomplete par IE. Onchange ne marche pas, j'ai également essayé avec un bind 'paste', qui ne marche pas non plus... Reste la solution du timer qui vérifie à chaque seconde si les valeurs des champs ont été modifiés mais j'aurai préféré une solution plus simple ...

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    C'est pour ça que dans la solution que je t'ai mise en lien, il utilise un input plutôt qu'un div pour éviter d'avoir l'effet de superposition. Sinon tu peux mettre un background-color:white; à ton div placeholder.
    Mais pour cacher le placeholder en cas d'autocomplétion, je crois qu'il vaut mieux utiliser la solution de Bovino avec l'attribut value de ton input. Tu auras des points avec les type=password, mais bon a-t-on vraiment besoin d'un placeholder pour un champ mot de passe, qui par définition ne répond à aucun format prédéfini ?

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    mais bon a-t-on vraiment besoin d'un placeholder pour un champ mot de passe, qui par définition ne répond à aucun format prédéfini ?
    Entièrement d'accord.
    Il ne faut pas confondre le rôle du placeholder (par exemple préciser un format attendu) et celui du label !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. [MySQL] [SGBD] [mssql] Equivalent mysql_real_escape_string pour mssql
    Par PoZZyX dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/10/2005, 11h37
  2. Equivalent HttpZip pour Apache
    Par maff dans le forum Apache
    Réponses: 1
    Dernier message: 13/09/2005, 21h09
  3. [débutant] equivalent à sprintf pour les std::string
    Par Biosox dans le forum SL & STL
    Réponses: 22
    Dernier message: 26/08/2005, 12h46
  4. Equivalent à TCppWebBrowser pour BCB5 Standard
    Par bartfr dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/03/2004, 16h11
  5. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07

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