OnChange hors de la balise SELECT
Résolu
Mnu
Messages postés
97
Date d'inscription
Statut
Membre
Dernière intervention
-
Isabelle -
Isabelle -
Bonjour,
Je voudrais savoir s'il est possible d'utiliser un onChange hors de la balise HTML <SELECT>. En fait, je veux détecter si l'utilisateur change la valeur d'une liste déroulante SELECT dont je ne peux modifier la balise... (pour des raisons de structure de mon appli)
J'ai essayé:
Mais ça marche pas...
Vous avez une idée ?
Merci
Je voudrais savoir s'il est possible d'utiliser un onChange hors de la balise HTML <SELECT>. En fait, je veux détecter si l'utilisateur change la valeur d'une liste déroulante SELECT dont je ne peux modifier la balise... (pour des raisons de structure de mon appli)
J'ai essayé:
document.getElementById("Ma_liste").onchange=ma_fonction();
Mais ça marche pas...
Vous avez une idée ?
Merci
A voir également:
- OnChange hors de la balise SELECT
- Apparaitre hors ligne instagram - Guide
- Gps hors ligne - Guide
- Fenêtre hors écran windows 11 - Guide
- Apparaitre hors ligne whatsapp - Guide
- Hors de la station locale ✓ - Forum Consommation & Internet
2 réponses
Merci merci... je viens (tardivement) de lire ta réponse: elle est relativement obscure encore pour moi, mais je vais y travailler...
En tout cas, merci d'avoir pris le temps de me répondre !
En tout cas, merci d'avoir pris le temps de me répondre !
Oui, c'est faisable.
Il te faut pour celà une fonction pour attacher un gestionnaire d'évènement (une fonction) à l'évènement onchange de ta balise SELECT.
Ensuite, il faut que tu appelles cette fonction au chargement de ta page. (obligé d'attendre le chargement de ta page, sinon ton document.getElementById() ne te renverra rien, et le gestionnaire d'évènement ne sera pas lié à la balise.
ma_fonction est le nom de ta fonction qui sera appellée sur l'évènement onchange de la balise. Elle reçoit un paramètre implicite à savoir l'évènement, ou rien pour IE. Donc, pour IE, on récupère l'évènement que reçoit la fenêtre. A partir de cette évènement, tu peux remonter à la source de cette évènement (la balise select) grace à la propriété target(navigateurs DOM) ou source (IE) pour récupérer sa valeur.
Is it allright ?
Il te faut pour celà une fonction pour attacher un gestionnaire d'évènement (une fonction) à l'évènement onchange de ta balise SELECT.
function attachEvent(o,e,f,c){ if(o.addEventListener) o.addEventListener(e,f,c); else if(o.attachEvent) o.attachEvent("on"+e,f); else eval("o.on"+e+"="+f) }
Ensuite, il faut que tu appelles cette fonction au chargement de ta page. (obligé d'attendre le chargement de ta page, sinon ton document.getElementById() ne te renverra rien, et le gestionnaire d'évènement ne sera pas lié à la balise.
function init(){ attachEvent(document.getElementById('select2'),'change',ma_fonction,false); } window.onload = init ;
ma_fonction est le nom de ta fonction qui sera appellée sur l'évènement onchange de la balise. Elle reçoit un paramètre implicite à savoir l'évènement, ou rien pour IE. Donc, pour IE, on récupère l'évènement que reçoit la fenêtre. A partir de cette évènement, tu peux remonter à la source de cette évènement (la balise select) grace à la propriété target(navigateurs DOM) ou source (IE) pour récupérer sa valeur.
function ma_fonction(e){ var source = (document.all)?window.event.srcElement:e.target ; alert('valeur du select = '+source.options[source.selectedIndex].value) ; }
Is it allright ?
depuis le temps, tu dois avoir la réponse à ta question.
Mais bon, on sait jamais... et puis ça peut servir à d'autres personnes !
L'erreur était simplement que lorsque tu affectes une méthode à un événement, lorsque tu ne décris pas la fonction (mais que tu références la méthode, comme tu le faisais), il ne faut pas de parenthèses derrière le nom de la méthode ! ;-)
J'ai eu le même souci hier soir et comme firefox ne donnait pas d'erreur dans la console, j'ai mis du temps à trouver... !
Bonne continuation,
Isabelle