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 retourne nothing


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Par défaut getElementById retourne nothing
    Bonjour,

    Dans ma page ascx, j'essaie lors d'un clic sur une balise <legend> d'un fieldset d'appeler une fonction javascript capable de cacher ou non un panel.

    Voici mon 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
    <%@ Register .... %>
    <%@Register .... %>
    <link ... />
     
    <script type="text/javascript">
    function NouveauMessage(){
    var nouveauMessage = document.getElementById("pnl_message");
    if (nouveauMessage==null) alert("nouveauMessage is null");
    }
    </script>
     
    <fieldset><legend onclick="NouveauMessage()">Nouveau message</legend>
     
    <asp:panel id="pnl_message" runat="server">
    ...
    </asp:panel>
     
    </fieldset>
    Malheureusement, lors de l'éxecution, quand je clique sur "Nouveau message" de la balise <legend>, le message "nouveauMessage is null" apparaît

    Auriez-vous une idée ?

    Je vous remercie !

  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 : 54
    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
    On pourrait voir le HTML généré ?
    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
    Membre éclairé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Par défaut
    Bonjour,

    bien sûr. Voici la HTML généré que je juge nécessaire de mettre pour mon problème (si vous voulez en voir d'autres parties n'hésitez pas à me le faire savoir !) :

    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
    <link .../>
     
    <script type="text/javascript>
    function NouveauMessage(){
    var nouveauMessage = document.getElementById("pnl_message");
    if (nouveauMessage==null) alert ("nouveauMessage is null");
    }
    </script>
     
    <fieldset ...><legend onclick="javascript:NouveauMessage()">Nouveau message</legend><br/>
     
    <div id="_ctl0_ContentPlaceHolder1_Echanges1_pnl_message">
     
    ...
     
    </div>
    Je pense que mon problème se trouve au niveau de la balise <panel> qui devient un <div>. En fait, je dois vous préciser que la page Echange.ascx qui contient la fonction javascript est en fait appelée par une page ModificationEchange.aspx dans laquelle la structure est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@Register tagprefix="uc1" tagname="Echanges" Src="UserControl/Echanges.ascx"
     
    <asp:Content id="Content1" ContentPlaceHolderID="head" Runat="server">
    </asp:Content>
    <asp:Content id="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="server">
    <div>
    <uc1:menu id="menu1" runat="server"></uc1:menu></div>
    <table id="Table1">
    <tr>
    <td><uc1:Echanges id="Echanges1" runat="server"></uc1:Echanges></td>
    </tr>
    </table>
    </asp:Content>
    J'éspère que c'est assez clair

    Qu'en pensez-vous ?

    Merci !

  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 : 54
    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
    Citation Envoyé par betsprite
    Je pense que mon problème se trouve au niveau de la balise <panel> qui devient un <div>.
    C'est surtout dû à son id qui passe de pnl_message à _ctl0_ContentPlaceHolder1_Echanges1_pnl_message, pas étonnant ensuite que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var nouveauMessage = document.getElementById("pnl_message");
    ne renvoie rien
    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 éclairé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Par défaut
    En fait pour moi, comme la fonction javascript et le panel sont contenus dans mon contrôle Echanges.ascx, le "chemin" pour accéder à l'id de mon panel devait commençait en partant de ce contrôle ascx et non pas de la page aspx qui le contient.

    En effet maintenant ça fonctionne

    Merci beaucoup Bovino pour ton aide !

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

Discussions similaires

  1. ActiveWorkbook Retourne Nothing
    Par jonueva dans le forum Développement Office System
    Réponses: 3
    Dernier message: 05/03/2015, 07h10
  2. Ma fonction PL/SQL retourne Nothing sur VB
    Par Franck.H dans le forum VB.NET
    Réponses: 3
    Dernier message: 06/05/2014, 11h24
  3. document.getElementById retourne une valeur Null..
    Par jpe54 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/04/2013, 16h01
  4. document.getElementById retourne null
    Par gabdeschenes dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2009, 08h45
  5. La fonction document.getElementById retourne NULL
    Par zaineb.z dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/05/2008, 18h09

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