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

jQuery Discussion :

Déclenchement onChange sur un select


Sujet :

jQuery

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut Déclenchement onChange sur un select
    Bonsoir,

    je cherche à simuler la sélection d'un élément dans un select sur une page extérieure, dont je n'ai pas de contrôle sur le contenu.

    J'ai quelque chose comme:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select class="maClasse">
    <option>Option 0</option>
    <option>Option 1</option>
    <option>Option 2</option>
    </select>

    J'ajoute un listener sur le select:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("select.maClasse").change(function() {
    alert("Ça fonctionne !");
    });
    Et je simule une selection de l'utilisateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("select.maClasse").prop('selectedIndex',1).change();
    Mon listener est bien exécuté, et le select est rempli avec l'option 1.

    Seulement, sur cette page, lorsque l'utilisateur sélectionne un élément à la souris, cela entraîne des modifications sur la page.

    Ces modifications n'ont pas lieu lorsque la sélection est simulée en JavaScript. Je n'ai que peu de détails sur le fonctionnement de cette page, auriez-vous une idée de ce qui peut clocher?

    Comment pourrais-je simuler exactement la sélection via une souris en JavaScript? Pas de succès avec l'appel à .click() non plus.

    Merci d'avance !

    naaje

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut
    Hop, je me réponds à moi-même, je sais que ça servira à quelqu'un un jour !

    jQuery ne génère pas les évènements exactement tels qu'ils sont générés suite à une action utilisateur, du coup il faut créer un évènement directement dans le DOM:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $("select.maClasse").prop('selectedIndex',1); // on positione sur la deuxieme option
     
    var event = document.createEvent('HTMLEvents'); // creation d'un évènement HTML
    event.initEvent('change', true, false); // evenement change, qui se propage et ne peut être annulé
     
    $("select.maClasse")[0].dispatchEvent(evObj); // déclencher le traitement de l'evenement dans le select
    @+

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

Discussions similaires

  1. propriété onChange sur un select, pb sous IE7 !
    Par avogadro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/02/2007, 15h46
  2. onchange sur un SELECT : passage de paramètre
    Par NikoBe dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/10/2006, 11h14
  3. 2 actions sur evenement onchange sur champ Select
    Par falz222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2006, 20h59
  4. onChange sur un SELECT
    Par linar009 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/07/2006, 10h14
  5. [Onchange] sur checkbox selection ds une liste deroulante
    Par maxxou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/01/2006, 00h17

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