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 26/12/2011, 14h46   #1
Membre du Club
 
Inscription : janvier 2009
Messages : 98
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 98
Points : 44
Points : 44
Par défaut Cocher des éléments enfants

Bonjour,

J'ai une arborescence en liste et j'aimerais cocher les éléments enfants lorsque le père est coché. Mon code HTML se présente actuellement sous la forme suivante :

J'ai tenté de faire le code JS mais il me manque des éléments pour aboutir... Je ne pense pas que children soit bien adapté dans mon cas, mais comment faire ? Merci.

Code :
1
2
3
4
5
6
 
$('.aco_master').click(function(){ 
    	if($('.aco_master').attr('checked') == 'checked'){
    	  $('.aco_child').children.attr("checked", "checked");
    	}
    });
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<ul id="navigation" class="treeview">
<li class="expandable">
<div class="hitarea expandable-hitarea"></div>
<input id="AcoId73" class="aco_master" type="checkbox" value="73" name="data[Aco][id][73]">
Ajax
<ul>
<li>
<input id="AcoId74" class="aco_child" type="checkbox" value="74" name="data[Aco][id][74]">
_index
</li>
<li>
<input id="AcoId75" class="aco_child" type="checkbox" value="75" name="data[Aco][id][75]">
_edit_utilisateur
</li>
<li>
<input id="AcoId76" class="aco_child" type="checkbox" value="76" name="data[Aco][id][76]">
_list_utilisateurs
</li>
<li>
<input id="AcoId77" class="aco_child" type="checkbox" value="77" name="data[Aco][id][77]">
_save_utilisateur
</li>
</ul>
<li class=..>Blabla
<ul>...
flashnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 18h34   #2
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Voir : http://api.jquery.com/prop/

Code :
1
2
3
4
5
$('.aco_master').change(function(){
	if ( $(this).prop('checked') ){
		$('.aco_child').prop("checked", true);
	}
});
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 13h53   #3
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
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 808
Points : 35 789
Points : 35 789
Tu commets pas mal de confusions...
Code :
$('.aco_child').children.attr("checked", "checked");
C'est quoi pour toi un enfant d'une balise <input>, qui par définition n'a pas de contenu ?

Code :
if($('.aco_master').attr('checked') == 'checked')
C'est lequel d'input que tu vérifies selon toi ?
D'autre part, .attr() vérifie la valeur de l'attribut, pour vérifier si un input est coché, c'est plutôt
Code :
$('.aco_master:checked')
ou
Code :
$('.aco_master').is(':checked')
__________________
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 28/12/2011, 09h15   #4
Membre du Club
 
Inscription : janvier 2009
Messages : 98
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 98
Points : 44
Points : 44
Merci pour vos réponses, voici ce que je suis arrivé à faire et qui fonctionne :

Code :
1
2
3
4
5
6
7
8
 
$('[class*="aco_master"]').change(function(){
        var aco_child_id = $(this).attr('class').substr(-1,1);
    	if ( $(this).prop('checked') ){
    		$('.aco_child_'+aco_child_id).prop("checked", true);
    	} else {
    		$('.aco_child_'+aco_child_id).prop("checked", false);
}
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ul>
<li>
<input id="AcoId73" class="aco_master_1" type="checkbox" value="73" name="data[Aco][id][73]">
Ajax
<ul>
<li>
<input id="AcoId74" class="aco_child_1" type="checkbox" value="74" name="data[Aco][id][74]">
index
</li>
<li>
<input id="AcoId75" class="aco_child_1" type="checkbox" value="75" name="data[Aco][id][75]">
editutilisateur
</li>
<ul class="aco_master_2">...
flashnet 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 18h45.


 
 
 
 
Partenaires

Hébergement Web