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 :

function javascript qui ne fonctionne pas dans la balise <body>


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Par défaut function javascript qui ne fonctionne pas dans la balise <body>
    Bonjour,
    j'ai créée la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function CreatInput(chName, chId, chValue, div)
     {
     	var idDiv = document.getElementById(div);
    	var input = document.createElement("<input name='"+chName+"' />");
     	input.type  = "hidden";
     	input.id    = chId;
     	input.value = chValue;
    	idDiv.appendChild(input);
     }
    elle fonctionne très bien quand elle est appelé dans <head><script langage="JavaScript">.....</script>

    Mais quand j'essai d'appeler cette fonction à partir de la balise <BODY>
    de l manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script langage="text/JavaScript">
    CreatInput("toto", "idtiti0", "test","div");
    CreatInput("tata", "idtiti0", "testtata", "div");
    CreatInput("titi", "idtiti0", "testiti","div");
    </script>
    la fonction plante car idDiv est null apparement
    je suis sur de l'existance de la zone div car ce mm appel fonctionne dans la balise head
    avez vous un avis sur ce type de bug?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par typikal Voir le message
    la fonction plante car idDiv est null apparement
    je suis sur de l'existance de la zone div car ce mm appel fonctionne dans la balise head
    comme quoi, mieux vaut n'être sûr de rien

    Il n'y a qu'en la lançant à partir du onload de la balise <body> que tu peux être sûr que tous les éléments de la page sont créés.
    Le reste est aléatoire (dépend des nav).

    A+

  3. #3
    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
    ça s'appelle une erreur d'insatnciation.. au moment de l'appel du div, l'objet n'est pas encore instancié sur la page ...

    en appelant la fonction dans le onload comme le dit Ebzz, la focntion n'est exécuté qu'une fois tous les éléments de la page instanciés ...

    tu pourrais aussi mettre le script dasn la page APRES le code html du div en question
    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 !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Par défaut
    le fait que tu parle de onload... m'a fait prendre conscience que ma zone div était créer après l'appel de la fonction car elle était déclarer plus loin dans le code donc la fonction ne pouvait pas la trouver.
    j'ai simplement déclaré ma zone div avant de faire l'appel de ma fonction CraeInput et maintenant ça marche.

    Merci E.Bzz ton message m'a éclairé

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/12/2010, 08h55
  2. Fonction javascript qui ne fonctionne pas sous IE
    Par jules_diedhiou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/03/2009, 20h10
  3. Réponses: 6
    Dernier message: 22/05/2007, 09h55
  4. Réponses: 9
    Dernier message: 05/02/2007, 18h08
  5. [FTP] fopen qui ne fonctionne pas dans tous les contextes ..
    Par Christophe Charron dans le forum Langage
    Réponses: 6
    Dernier message: 15/06/2006, 10h25

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