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 :

La fonction "getElementById('x').value" ne s'exécute qu'une seule fois ?


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut La fonction "getElementById('x').value" ne s'exécute qu'une seule fois ?
    Bonjour,

    Pourquoi la fonction "getElementById('x').value" ne s'exécute qu'une seule fois ?

    ie

    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
    
     document.getElementById('f:title').value = "test1";
    
    var Tab = new Array(1,2,3,4,5); 
    
    for (Val in Tab){ 
    	
    	   document.write(Tab[Val] + "  "); 
       } 
    
    document.getElementById('f:title').value = "test2";
    for (Val in Tab){ 
    	
    	   document.write(Tab[Val] + "  "); 
    
       }
    Merci

  2. #2
    Membre régulier Avatar de coach759
    Profil pro
    Webmaster
    Inscrit en
    Août 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 79
    Points : 92
    Points
    92
    Par défaut
    Bonjour,
    comment ça elle ne s'éxecute une seule fois ?

    Que voudrais-tu que ça fasse?
    Qu'est qui est affiché?

    Un peu plus de précision car là, pour ma part, je comprend pas trop...
    Si à la Saint Valentin elle te caresse la main, vivement la Sainte Marguerite

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par coach759 Voir le message
    Bonjour,
    comment ça elle ne s'éxecute une seule fois ?

    Que voudrais-tu que ça fasse?
    Salut,

    bah tout simplement si je supprime la deuxième :
    ie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     document.getElementById('f:title').value = "test1";
     
    var Tab = new Array(1,2,3,4,5); 
     
    for (Val in Tab){ 
     
    	   document.write(Tab[Val] + "  "); 
       } 
     
    //document.getElementById('f:title').value = "test2";
    for (Val in Tab){ 
     
    	   document.write(Tab[Val] + "  ");
    j'obtiens sur ma page :

    1 2 3 4 5 1 2 3 4 5

    mais avec la présence de la deuxième, je n'obtiens dans ma page:

    1 2 3 4 5

    !! ce qui implique que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('f:title').value = "test2"; 
    a causé un problème .

  4. #4
    Membre régulier Avatar de coach759
    Profil pro
    Webmaster
    Inscrit en
    Août 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 79
    Points : 92
    Points
    92
    Par défaut
    Et qu'est ce que c'est ton "f:title" ?
    Si à la Saint Valentin elle te caresse la main, vivement la Sainte Marguerite

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par coach759 Voir le message
    Et qu'est ce que c'est ton "f:title" ?
    c'est un <h:inputHidden ..> (jsf)

  6. #6
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    document.write() écrase toute la page. Adieu le HTML. Donc oui, le second document.getElementById ne fonctionne pas et génère une erreur.

  7. #7
    Membre régulier Avatar de coach759
    Profil pro
    Webmaster
    Inscrit en
    Août 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 79
    Points : 92
    Points
    92
    Par défaut
    Je pense savoir:

    En faite, quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.write(Tab[Val] + "  ");
    ça remplace ton html, et donc "écris sur" ton <h:inputHidden ..> .

    Donc lorsqu'il arrive à la seconde occurrence de getElementById, il ne le trouve pas, et donc il arrête le script.

    Je pense que c'est ça...

    --> Mais un peu moins rapide que vermine
    Si à la Saint Valentin elle te caresse la main, vivement la Sainte Marguerite

  8. #8
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    C'est tout à fait ça coach759. C'est pourquoi on déconseille vivement l'utilisation de document.write().
    Et pour la rapidité, ça viendra.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Points : 68
    Points
    68
    Par défaut
    ça alors !


    merci !

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

Discussions similaires

  1. Fonction avec getopts ne s'exécute qu'une seule fois
    Par yzoug dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 02/03/2015, 12h44
  2. Réponses: 6
    Dernier message: 13/07/2007, 11h46
  3. [AJAX] [XMLHttp][IE]Fonction qui ne fonctionne qu'une seule fois
    Par narnou dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/07/2007, 11h16
  4. Réponses: 8
    Dernier message: 26/10/2006, 16h46
  5. fonction qui s'exécute qu'une seule fois sous Firefox
    Par la.sophe dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/03/2006, 10h02

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