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 :

[DOM] Modifier le contenu d'un onChange


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut [DOM] Modifier le contenu d'un onChange
    Bonjour !

    J'ai une application que je dois modifier. J'ai une fonction qui génère des droprown (<select>). J'aimerais ajouter des onChange dans mon select. Donc, quand la fonction créer un dropdown, je me retrouve avec un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select onChange="" name="truc">
    J'aimerais pouvoir modifier l'intérieur du onChange. J'ai donc testé qqch du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    	<!--
    	function refreshGroup()
    	{
    		document.getElementsByName("truc").onchange = "javascript: test();";
    	}
    	-->
    </script>
    Mais sans succès...

    Quelqu'un aurait-il une idée ?

  2. #2
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    essaye plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select onChange="" id="truc">
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <head>
    <script type="text/javascript">
    	<!--
    function test() {
    alert('Nouveau onchange');
    }
    	function refreshGroup()
    	{
    		document.getElementById("truc").onchange = test;
    	}
    	-->
    </script>
    </head>

  3. #3
    Invité
    Invité(e)
    Par défaut
    Voilà ce que j'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select onChange='' id='dropdown_FK_group' name="FK_group" size='1'>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    	<!--
    	function refreshGroup()
    	{
    		document.getElementById("dropdown_FK_group").onchange = "javascript: test();";
    	}
    	-->
    </script>
    Le onChange de mon select est toujours vide. alors que la fonction refreshGroup() est bien lancée.

  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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oui, mais ta fonction refreshGroup(), tu l'appelles quand ?

    Et puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange = "javascript: test();"

    Le 'javascript:', ça sert à quoi au juste, à demander à JavaScript de faire du JavaScript ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Oui, mais ta fonction refreshGroup(), tu l'appelles quand ?

    Et puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange = "javascript: test();"

    Le 'javascript:', ça sert à quoi au juste, à demander à JavaScript de faire du JavaScript ?
    J'appelle ma fonction tout à la fin de la page. J'ai testé en mettant un alert dedans et c'est ok.

    Ca sert que l'application que je dois modifier génère elle-même ses dropdown. J'aimerais qu'un champ se rafraichisse automatiquement quand certains sont modifiés.

    Je peux ajouter le onChange="" vide sur les select mais il faut ensuite que je puisse ajouter des choses dedans en fonctione du nom.

    J'espère que j'ai été assez clair...

  6. #6
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
    	<!--
    	function refreshGroup()
    	{
    		document.getElementById("dropdown_FK_group").onchange = test;
    	}
    	-->
    </script>

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
    	<!--
    	function refreshGroup()
    	{
    		document.getElementById("dropdown_FK_group").onchange = test;
    	}
    	-->
    </script>
    Avec cette méthode, FireBug me renvoi que :
    Citation Envoyé par FireBug
    element is null
    document.getElementById("dropdown_FK_group").onchange = test;
    et que :
    Citation Envoyé par FireBug
    test is not definied
    document.getElementById("dropdown_FK_group").onchange = test;
    par contre, si je remplace test par "test", je n'ai plus d'erreur. Par contre, le onChange n'est toujours pas modifié........

  8. #8
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    La solution de Bovino est la plus propre. Il doit y avoir un autre problème.

    est-ce que ceci fonctionne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("dropdown_FK_group").onchange = function() { alert('ok'); };

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par marcha Voir le message
    Salut,

    La solution de Bovino est la plus propre. Il doit y avoir un autre problème.

    est-ce que ceci fonctionne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("dropdown_FK_group").onchange = function() { alert('ok'); };
    Non cela ne fonctionne pas car, comme je l'ai dit précédemment, le onChange n'est pas modifié. Il est toujours vide.

  10. #10
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Non cela ne fonctionne pas car, comme je l'ai dit précédemment, le onChange n'est pas modifié. Il est toujours vide.
    Ote moi d'un doute cruel, comment vois-tu que le onchange n'est pas modifié (qu'il est encore vide) ???

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ote moi d'un doute cruel, comment vois-tu que le onchange n'est pas modifié (qu'il est encore vide) ???
    En regardant le code source de la page C'est faux ......?

  12. #12
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Oui c'est faux, le code source est le code source, il ne t'affiche
    pas les modifications faites par javascript. Ce qu'il te faut c'est un
    inspecteur DOM. FireFox avec l'extension FireBug, puis "Inspecter" et
    là tu verras

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par marcha Voir le message
    Oui c'est faux, le code source est le code source, il ne t'affiche
    pas les modifications faites par javascript. Ce qu'il te faut c'est un
    inspecteur DOM. FireFox avec l'extension FireBug, puis "Inspecter" et
    là tu verras
    Ok, je viens de tester avec Firebug et le onChange est vide aussi

  14. #14
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ou en essayant de changer le select ...

  15. #15
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Citation Envoyé par babastutz Voir le message
    Ok, je viens de tester avec Firebug et le onChange est vide aussi
    Au temps pour moi, FireBug (en tout cas la version que j'ai) ne permet pas
    de lister les évènements.

    Donc le seul moyen de s'assurer qu'ils sont bien assignés c'est de les
    provoquer (dixit. Bovino ci-avant)

  16. #16
    Invité
    Invité(e)
    Par défaut
    En fait je faisais une erreur de manip !

    Vos solution fonctionnent très bien!

    merci

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

Discussions similaires

  1. [DOM] changer le contenu d'un noeud
    Par thefaycal dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 06/08/2009, 13h47
  2. [DOM] Modifier le contenu complet d'une frame
    Par schnito dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/04/2008, 15h58
  3. modifier le contenu de ma base
    Par dolphi dans le forum ASP
    Réponses: 2
    Dernier message: 22/08/2005, 17h17
  4. Réponses: 20
    Dernier message: 01/06/2005, 09h37
  5. modifier le contenu d'une table avec innerHTML
    Par francon81 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/05/2005, 09h02

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