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 :

getElementById


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de masu
    Inscrit en
    Février 2004
    Messages
    428
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 428
    Points : 484
    Points
    484
    Par défaut getElementById
    j'ai eu un petit souci avec getElementById(monId) sous IE6. Il semble prendre les elements qui ont le name monId.
    Du coup j'ai fait queques tests et j'ai été assez étonné. Je voudrai savoir si je fait les choses de travers?

    // voici le js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function toto() {
        if(document.getElementById) {
            alert(document.getElementById("test").value);
        }
    }
    if(document.getElementById) {
            alert('i don\t know why i cant\'t found that value out the function: ' + document.getElementById("test").value);
    }
    //voici le HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <body onload="javascript: toto();">
     
    <input type="text" name="test" value="should not appear" />
    <input type="text" id="test" value="this is good" />
    le lien pour voir le truc online
    http://www.freakngeek.info/jserror.htm

    Alors pourquoi le document.getElementById("test").value me revoie "should not appear" sous IE

    Et pourquoi quant je fait le truc hors d'une fonction ca ne marche pas?

    merci d'avance
    DON'T PANIC

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par masu
    Alors pourquoi le document.getElementById("test").value me revoie "should not appear" sois IE
    Parceque IE c'est de la *****.

    Sérieusement, le comportement d'IE est en effet de renvoyer l'élement ayant le name donné, si il n'y a pas d'élément ayant l'id demandé. C'est déjà bien débile comme comportement, mais soit.

    Si en plus, même avec un élement ayant le bon id, il se trompe, ça devient carrément grave!!!

  3. #3
    Membre confirmé Avatar de masu
    Inscrit en
    Février 2004
    Messages
    428
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 428
    Points : 484
    Points
    484
    Par défaut
    Citation Envoyé par denisC
    Parceque IE c'est de la *****.

    Sérieusement, le comportement d'IE est en effet de renvoyer l'élement ayant le name donné, si il n'y a pas d'élément ayant l'id demandé. C'est déjà bien débile comme comportement, mais soit.

    Si en plus, même avec un élement ayant le bon id, il se trompe, ça devient carrément grave!!!
    En fait apparement il revoie le premier truc qu'il trouve que ce soit un name ou un id !!!!!!!!!!!!!

    Ok donc deja la c'est bien IE qui merde et pas moi.

    par contre une idee de pourquoi le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if(document.getElementById) {
            alert('i don\t know why i cant\'t found that value out the function: ' + document.getElementById("test").value);
    }
    direct dans la balise script ne fonctionne pas ?
    DON'T PANIC

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par denisC
    Si en plus, même avec un élement ayant le bon id, il se trompe, ça devient carrément grave!!!
    La seule solution: ne pas mettre comme name l'id d'un autre élement. C'est nul, mais c'est la seule façon d'éviter les bugs completements incompréhensibles....

  5. #5
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Ouais, pas top.
    Pour la valeur qu'on ne peux pas trouver hors de la fonction, je suppose que tu as mis ton script dans le 'head'. Il est alors normal que ce dernier s'execute avant d'avoir charge le body et du coup qu'il ne trouve pas ton element. Dans le body-onload, il s'execute apres le chargement de ton body et c'est donc ok. Tu peux egalement mettre ton bloc de script apres la fermeture du body (</body>) et ca va fonctionner aussi.
    ++
    Fred

  6. #6
    Membre confirmé Avatar de masu
    Inscrit en
    Février 2004
    Messages
    428
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 428
    Points : 484
    Points
    484
    Par défaut
    Citation Envoyé par fred777888999
    Ouais, pas top.
    Pour la valeur qu'on ne peux pas trouver hors de la fonction, je suppose que tu as mis ton script dans le 'head'. Il est alors normal que ce dernier s'execute avant d'avoir charge le body et du coup qu'il ne trouve pas ton element. Dans le body-onload, il s'execute apres le chargement de ton body et c'est donc ok. Tu peux egalement mettre ton bloc de script apres la fermeture du body (</body>) et ca va fonctionner aussi.
    ++
    Fred
    OK je vien de faire le test et ca marche bien quand on met la balise script a la fin du body.

    merci a vous deux.

    ps : IE est vraiement de la M****
    DON'T PANIC

  7. #7
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(document.getElementById) {
            alert('i don\t know why i cant\'t find that value out of the function: ' + document.getElementById("test").value);
    }
    les fautes en rouge n'y sont pour rien
    tu as en fait un problème d'instanciation quand le code est executé ton objet n'est par encore créé ...
    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 !

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

Discussions similaires

  1. This.value au lieu de document.getElementById('field').value
    Par yoyot dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2005, 14h02
  2. getElementById et Firefox
    Par ludo65 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2005, 10h56
  3. getelementbyid innerhtml sur Opera?
    Par cynthia dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2004, 10h44
  4. getElementsByName ou getElementById
    Par lepierre dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/10/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