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 :

Lier plusieurs éléments à plusieurs actions respectives


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 44
    Par défaut Lier plusieurs éléments à plusieurs actions respectives
    Bonjour,

    j'ai un peu de mal à exprimer ce que je veux, mais c'est simple à comprendre à travers du code.

    J'ai 4 champs input, et j'aimerais qu'à l'évènement change de n'importe lequel d'entre eux, il s'exécute la même action. Mais comment faire le lien?

    ci dessous, l'expression de ce que je voudrais faire, mais je ne sais pas comment le faire en jquery ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('input#field1', 'input#field2', 'input#field3', 'input#field4').change(function() { ... })
    Merci !

    edit : j'aurais voulu m'éviter d'écrire ça en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function maFonction() { ... }
     
     
    		$('input#field1').change(function() { maFonction();});
    		$('input#field12').change(function() { maFonction();});
    		$('input#field13').change(function() { maFonction();});
    		$('input#field14').change(function() { maFonction();});

  2. #2
    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
    T'étais pas loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('input#field1, input#field2, input#field3, input#field4').change(function() { ... });
    et puisqu'un id doit être unique dans la page, il me semble que tu gagneras en performances avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#field1, #field2, #field3, #field4').change(function() { ... });
    qui t'éviteras d'avoir à résoudre la partie $('input') avant de rechercher l'id
    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

  3. #3
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Bonsoir,

    Aussi bien, un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('input').change(function() { maFonction();});
    suffirait,

    mais l'utilisation d'un attribut class="inputquichange" sur les input concernés ne serait-il pas plus judicieux avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.inputquichange').change(function() { maFonction();});
    Ce qui permettrait dans le futur de rajouter n'importe où un input ayant ce comportement uniquement en lui attribuant ce class="inputquichange" et sans avoir à tripatouiller le js.

  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 : 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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('input').change(function() { maFonction();});
    Oui et non : ça suppose que tous les input de la page devront avoir ce comportement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.inputquichange').change(function() { maFonction();});
    Là oui, entièrement d'accord
    Et effectivement, ça permettra de faciliter d'éventuelles mises à jour (ça perdra un peu en performances il me semble, mais l'intérêt apporté par la maintenance le justifie amplement).
    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

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 44
    Par défaut
    Merci beaucoup pour vos réponses , c'est vrai j'aurais pu passer par une classe commune aux 4 input, mais je voulais surtout les précisions syntaxiques de bovino qui me seront utiles plus tard aussi.

    Bonne journée !

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 44
    Par défaut
    Je vous embête encore un tout petit peu désolé.

    J'ai plusieurs input comme dit précédemment, mais j'ai aussi 2 select, et sur les select, l'évènement "change" ne marchant pas, j'ai besoin de focusout ;

    du coup, comment lier le tout à une fonction ?

    Pour plus de clarté, je cherche la syntaxe afin de lier le change des input au focusout des select ;

    de ces deux lignes de codes, je voudrais n'en faire qu'une

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('input#field1, input#field2, input#field3, input#field4').change(function() { maFonction();});
     
    $('#select1, #select2').focusout(function() { maFonction();});
    Merci !

    edit : pardon, le focusout je ne l'applique pas sur les select, mais sur le div qui les englobe.

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

Discussions similaires

  1. Quels sont les moyens pour encoder plusieurs éléments en même temps
    Par finalfx dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/01/2007, 00h00
  2. lier 3 tables plusieurs a plusieurs
    Par Chico_Latino dans le forum Access
    Réponses: 16
    Dernier message: 26/01/2006, 09h12
  3. Rendre visible / invisible plusieurs éléments en même temps
    Par Bluespike62 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 23/01/2006, 17h43
  4. Sélection de plusieurs éléments
    Par ti-ben dans le forum Langage
    Réponses: 8
    Dernier message: 04/09/2005, 11h54
  5. [CR] copier-coller plusieurs éléments de l'etat
    Par quaresma dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 18/04/2005, 14h46

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