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 :

Modification de l'event onChange d'un select via javascript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre � l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par d�faut Modification de l'event onChange d'un select via javascript
    Bonjour � tous,

    je parcours depuis longtemps ce forum qui m'a bien aid� pour r�soudre la plupart de mes probl�mes. Aujourd'hui toutefois, je s�che...

    je m'explique:

    Du c�t� HTML, j'ai un select vide (sera rempli plus tard par javascript). Ce select contient quand m�me un event onChange qui fait 'alert('toto');' Ce select est dans un form (de nom calcul).
    par exemple

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <select name="test" onChange="alert('toto');"></select>

    Ensuite, par javascript, je rempli les options de ce select mais je voudrais aussi modifier l'event onChange mais sans �craser le alert('toto') d�j� existant. En effet, j'arrive parfaitement � modifier le onChange mais cela ecrase tout... je ne sais pas trop comment faire un append en fait pour compl�ter l'event onChange.

    Actuellement, j'ai ca:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    document.calcul.test[0] = new Option("description 1","1");
    document.calcul.test[1] = new Option("description 2","2"); 
    document.calcul.test.onchange = function() { alert('tutu'); };
    Moi, ce que je voudrais � la fin dans l'event onChange, c'est en premier alert('tutu') puis ensuite le alert('toto') initial.

    Je ne vois pas trop comment proc�der pour faire cela... si vous pouviez m'aider.... j'ai tent� avec firebug d'y voir plus clair mais je n'arrive pas � r�cup�rer sous forme de string le contenu initial de l'event onChange afin que je fasse un append avec mon alert('tutu');....

    Merci bcp !

  2. #2
    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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    addEventListener et attachEvent
    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 !

  3. #3
    Membre � l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par d�faut
    Citation Envoy� par SpaceFrog Voir le message
    addEventListener et attachEvent
    ok, merci; je ne connais pas du tout addEventListener attachEvent, je vais donc fouiller dans ce sens... je ne suis pas un pro du js, je l'utilise par obligation...
    J'esp�re trouver mon bonheur avec ces m�thodes.

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Quelque chose dans ce style l� :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function addEvent(cible, type, effet) {
       if (document.addEventListener) {
          cible.addEventListener(type, effet, false);
       }
       else if (document.attachEvent) {
          cible.attachEvent("on" + type, effet);
       }
    }
     
    function gestionClick (ev) {
       alert("vous avez cliqué sur l'élément");// quitte à utiliser ev.target ou quoi que ce soit...
    }
     
    var monElement = document.getElementById("machinChouette");
    addEvent(monElement, "click", gestionClick);

  5. #5
    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 : 55
    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
    Sinon, tu peux aussi faire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    var oldEvent = document.calcul.test.onchange;
    document.calcul.test[0] = new Option("description 1","1");
    document.calcul.test[1] = new Option("description 2","2"); 
    document.calcul.test.onchange = function() {
        oldEvent;
        alert('tutu');
    };
    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

  6. #6
    Membre � l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par d�faut
    Citation Envoy� par Bovino Voir le message
    Sinon, tu peux aussi faire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    var oldEvent = document.calcul.test.onchange;
    document.calcul.test[0] = new Option("description 1","1");
    document.calcul.test[1] = new Option("description 2","2"); 
    document.calcul.test.onchange = function() {
        oldEvent;
        alert('tutu');
    };
    Cette solution ne fonctionne pas chez moi... c'est dommage, cela paraissait la plus simple. Cela ne provoque aucune erreur mais l'event initial n'est plus pris en compte... seul le nouveau est appel�, et ce, qu'importe l'ordre dans lequel j'�cris le onchange, � savoir 'oldEvent; alert('tutu');' ou 'alert('tutu'); oldEvent;'.

  7. #7
    Membre � l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par d�faut
    Citation Envoy� par RomainVALERI Voir le message
    Quelque chose dans ce style l� :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function addEvent(cible, type, effet) {
       if (document.addEventListener) {
          cible.addEventListener(type, effet, false);
       }
       else if (document.attachEvent) {
          cible.attachEvent("on" + type, effet);
       }
    }
     
    function gestionClick (ev) {
       alert("vous avez cliqué sur l'élément");// quitte à utiliser ev.target ou quoi que ce soit...
    }
     
    var monElement = document.getElementById("machinChouette");
    addEvent(monElement, "click", gestionClick);

    Cette solution fonctionne nickel chez moi... c'est ce qu'il me fallait.

    Par contre, je ne comprends pas le commentaire "// quitte � utiliser ev.target ou quoi que ce soit..."... ca signifie quoi ?

    Et derni�re question (pour le moment ), l'ordre des callbacks d�finies sur un event est-il garanti ? Mon onChange initial sera-t-il toujours appel� avant le deuxi�me que je set avec le addEventListener ? j'ai cru comprendre que non mais je voudrais un avis sur le sujet...

    En tous cas, merci bien, j'ai appris un truc sur javascript today... c'est assez puissant quand m�me ce que l'on peut faire... j'suis s�r que j'utilise a peine 10% des possibilit�s donc il me reste � apprendre, c'est cOOl !

  8. #8
    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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    Beff s'est emm�l� les crayons dans les indice ... sinon sa methode est bonne ...
    on ne peut pas ajouter la fonction sur la collection, il faut le faire sure chaque option
    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 !

Discussions similaires

  1. Safari et l'event onChange() sur un select
    Par Adibombe dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 14/03/2015, 10h46
  2. onChange dans un select
    Par nebule dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 03/12/2007, 11h19
  3. code javascript dans onchange d'un <select>
    Par grochenel dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 28/11/2005, 20h25
  4. Event OnChange : signification exacte
    Par azerty_essai dans le forum C++Builder
    R�ponses: 2
    Dernier message: 23/09/2005, 08h49
  5. SELECT event onChange ?
    Par akaii dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 29/11/2004, 10h15

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