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 :

IE et setAttribute


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut IE et setAttribute
    Bonjour, j'ai un script qui fonctionne très bien sous FF et pas sur IE ( surprise? lol )

    J'essaye selon la valeur d'un champ text placé plus haut de modifier le type d'un input : soit password soit text.

    voici le code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     if(quatreLettres.childNodes[0].nodeValue == 'true'){
                $('libelleMotDePasse').innerHTML = 'Je saisis ici les 4 premières lettres de mon nom :';
                $('pwd').setAttribute('type','text');            
                new Effect.Fade('jaioublieMdp', 1);
                new Effect.Fade('aideMotDepasse2', 1);
                new Effect.Pulsate('libelleMotDePasse', 1);
            } else{
                $('libelleMotDePasse').innerHTML = 'Mon mot de passe :';
                $('pwd').setAttribute('type','password');            
                new Effect.Appear('jaioublieMdp', 1);
                new Effect.Appear('aideMotDepasse2', 1);
                new Effect.Pulsate('libelleMotDePasse', 1);
            }
    le $ est equivalent au "getElementById"

    pourquoi IE ne comprends pas ce bout de code ?

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    IE n'a jamais compris setAttribute.

    Essaie plutôt comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('pwd').type = "text";

  3. #3
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    Pareil : fonctionne sous FF mais pas sous IE ...

  4. #4
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    comment faire ? quelqu'un a t'il une proposition ?

    j'ai testé en mettant type en Majuscules > pas marché

    en faisant ce code : $('pwd').onfocus = function(){ this.type='text';}; > pas marché ( dailleurs c la ou je placais tous ems espoirs lol )

  5. #5
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    pourquoi ce code ne fonctionne pas sur IE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $('pwd').onfocus = function(){ this.TYPE='text';};
    normalement c'est lastuce pour que IE change un attribut

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    Il faut spécifier type comme propriété


  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258

  8. #8
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    oki au lieu de modifier il faut que je tente de creer la balise par moi meme ( merci IE )

    donc voici le code html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="inputMotDePasse" style="display:none;">
                  <input type="password" id="pwd" maxlength="20" onKeypress="return stopCaracteresSpeciauxPassword(event);"/>
                  </div>
    il faut que je supprime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input type="password" id="pwd" maxlength="20" onKeypress="return stopCaracteresSpeciauxPassword(event);"/>
    pour le remplacer par la meme balise avec soit password soit text en type.

    j'ai donc fais ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     if(quatreLettres != null){
            if(quatreLettres.childNodes[0].nodeValue == 'true'){
                $('libelleMotDePasse').innerHTML = 'Je saisis ici les 4 premi&egrave;res lettres de mon nom :';
     
                nom = document.createElement("input");
                nom.setAttribute("type", "text");
                nom.setAttribute("id", "pwd");
                nom.setAttribute("maxlength", "20");
                nom.setAttribute("onKeypress", "return stopCaracteresSpeciauxPassword(event);");
                nom.insertBefore(pwd, null);
               nom.appendChild("inputMotDePasse");
     
                alert("quattre lettre ");                               
                new Effect.Fade('jaioublieMdp', 1);
                new Effect.Fade('aideMotDepasse2', 1);
                new Effect.Pulsate('libelleMotDePasse', 1);
            } else{
                $('libelleMotDePasse').innerHTML = 'Mon mot de passe :';
     
     
                nom = document.createElement("INPUT");
                nom.setAttribute("type", "password");
                nom.setAttribute("id", "pwd");
                nom.setAttribute("maxlength", "20");
                nom.setAttribute("onKeypress", "return stopCaracteresSpeciauxPassword(event);");
                nom.appendChild("inputMotDePasse");
     
                alert(" mot de passe ");
                new Effect.Appear('jaioublieMdp', 1);
                new Effect.Appear('aideMotDepasse2', 1);
                new Effect.Pulsate('libelleMotDePasse', 1);
            }

    mais il bloque surment a nom.appendChild("inputMotDePasse"); pourquoi ?

  9. #9
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    et il faut que je supprime l'ancienne balise input ou elle se fera remplacé automatiquement ?

  10. #10
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Un appendChild se fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elemParent.appendChild(elemAIntegrer);

  11. #11
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    dans mon cas l'element parent c'est inputMotDePasse et lelement a intergrer c'est nom nan ?

  12. #12
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Oui, donc modifie ton code en conséquence.

    Et l'élement parent ce n'est pas juste son "id", c'est l'objet, donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('inputMotDePasse').appendChild(nom);

  13. #13
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    Okay ca marche mais le derneir probleme c'est que je dois supprimer l'ancien input.

    Donc comment fait t'on pour supprimer un element ?

  14. #14
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    c'est comme ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.RemoveChild("pwd","inputMotDePasse");

  15. #15
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Plutôt comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('inputMotDePasse').removeChild($('pwd'));

  16. #16
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    merci beaucoup ca marche nickel et jaurais appris plein de trucs

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

Discussions similaires

  1. probleme setAttribute onmouseqlq sous IE - pb d'event inside
    Par xhak dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/03/2006, 17h23
  2. [Struts] - Problème avec un request.setAttribute
    Par renotm dans le forum Struts 1
    Réponses: 3
    Dernier message: 16/02/2006, 10h00
  3. pb avec setAttribute sous IE
    Par pekka77 dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 13/01/2006, 22h44
  4. setAttribute et compatibilité navigateurs .°/ ?
    Par Lareine dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 29/10/2005, 01h03
  5. [Débutante][jsp] request.setAttribute()
    Par phoebe dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 14/05/2004, 14h27

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