Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/06/2011, 18h03   #1
Membre à l'essai
 
Homme
Inscription : 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
Points : 22
Points : 22
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 :
$('input#field1', 'input#field2', 'input#field3', 'input#field4').change(function() { ... })
Merci !

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

Code :
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();});
estmars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 21h59   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
T'étais pas loin
Code :
$('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 :
$('#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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 22h38   #3
Membre chevronné
 
Avatar de micetf
 
Homme Fred
Professeur des Ecoles
Inscription : mai 2009
Messages : 503
Détails du profil
Informations personnelles :
Nom : Homme Fred
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : mai 2009
Messages : 503
Points : 701
Points : 701
Bonsoir,

Aussi bien, un simple :
Code :
$('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 :
$('.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.
micetf est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/06/2011, 22h42   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Code :
$('input').change(function() { maFonction();});
Oui et non : ça suppose que tous les input de la page devront avoir ce comportement.

Code :
$('.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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 09h43   #5
Membre à l'essai
 
Homme
Inscription : 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
Points : 22
Points : 22
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 !
estmars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 11h47   #6
Membre à l'essai
 
Homme
Inscription : 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
Points : 22
Points : 22
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 :
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.
estmars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 11h56   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Citation:
et sur les select, l'évènement "change" ne marchant pas
C'est nouveau ça...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 12h21   #8
Membre à l'essai
 
Homme
Inscription : 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
Points : 22
Points : 22
MEA CULPA

estmars est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h50.


 
 
 
 
Partenaires

Hébergement Web