Problème getElementById [Résolu]

Signaler
Messages postés
12
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
J'ai un problème de détection de control que je ne m'explique pas.

c'est un site asp.net avec le framework 1

dans la page aspx j'ai un image button nommé btnGo.

dans le code j'ai une fonction qui est appelé lors du changement de valeur d'une dropdownlist la dernière inscription de cette fonction est :

this.Page.RegisterClientScriptBlock(
"SetFocus",
"<script language='javascript'>SetFocusWhenSelect('" + btnGo.ClientID + "'
);</script>");

La fonction javascript qui est dans un fichier Common.js inclus dans la page est la suivante :

function

SetFocusWhenSelect(strButtonID, strTest){

   document.getElementById(strButtonID).focus();

}

le getElementById me retourne null alors que dans le viewsource le bouton est bien présent et porte bien l'ID passé a la fonction javascript.

Je ne comprend pas comment un code d'une telle simplicité puisse ne pas marché si qq à une piste?? merci d'avance.

MobyWan

4 réponses

Messages postés
12
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
4 septembre 2010

Merci a vous deux vous m'avez permis de trouver ce qui clochais dans mon code.

Le problème vient effectivement de la position du script dans la page et donc si au lieur de fair un RegisterClientScriptBlock
je fais un RegisterStartupScript

il n'y a plus de problème.

Encore merci

MobyWan
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,
    pas simple de te répondre.... tu ne donnes que peu d'infos !
    mais si dans la page html ( pas en jsp ! ), il y a un
      
       ben, en javascript document.getElementById("TOTO")... ça fonctionne....
       sauf si on fait référence à cet ID avant qu'il ne soit défini ( c'est de
       l'interprété ! )

      
       <script> document.getElementById("TOTO")   c'est ok

       <script> document.getElementById("TOTO")   c'est ko

      

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
Salut,

Bultez++

Il faut faire l'appel de la fonction après que la balise soit définit et non pas avant, tu peus par exemple faire :

window.attachEvent("onload", "fonction"); //IE
window.addEventListener("load", "fonction", false); //Firefox

a++

Si t'a besoin d'aide, MP !!!
Un forum...
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
de rien !

Si t'a besoin d'aide, MP !!!
Un forum...