2011-03-01 4 views
1

Je dois cocher toutes les cases à cocher des enfants lorsqu'un utilisateur cochera un parent. Par exemple, si un utilisateur cochera la case id ='s9', les cases à cocher s15, s16 et s116 doivent être cochées, car elles ont parentId='s9'.Cocher toutes les cases à cocher des enfants

<span class='font-bold'><input id='s1' type='checkbox'/>bla</span><br/> 
<span class='left-indent'><input id='s2' parentId='s1' type='checkbox'/>bla11</span><br/> 
<span class='left-indent'><input id='s3' parentId='s1' type='checkbox'/>bla12><br/> 
<span class='left-indent'><input id='s4' parentId='s1' type='checkbox'/>bla13</span><br/> 
<span class='left-indent'><input id='s5' parentId='s1' type='checkbox'/>bla14</span><br/> 
<span class='left-indent'><input id='s6' parentId='s1' type='checkbox'/>bla15</span><br/> 


<span class='font-bold'><input id='s8' type='checkbox'/>bla2</span><br/> 
<span class='font-bold'><input id='s9' type='checkbox'/>bla3</span><br/> 
<span class='left-indent'><input id='s15' parentId='s9' type='checkbox'/>bla31</span><br/> 
<span class='left-indent'><input id='s16' parentId='s9' type='checkbox'/>bla32</span><br/> 
<span class='left-indent'><input id='s116' parentId='s9' type='checkbox'/>bla32</span><br/> 

<span class='font-bold'><input id='s10' type='checkbox'/>bla4</span><br/> 
<span class='font-bold'><input id='s11' type='checkbox'/>bla5</span><br/> 

MISE À JOUR

Si certains enfants sont contrôlés, un parent doit être vérifié aussi.

Si tous les enfants ne sont pas cochés, le parent doit également être décoché.

Répondre

4

Vous ne devriez pas utiliser parentId comme attribut personnalisé car cela invaliderait votre code HTML. Utilisez classnames lieu:

<input id="s9" type="checkbox" /> 
<input id="s15" class="parent-s9" type="checkbox" /> 
<input id="s16" class="parent-s9" type="checkbox" /> 

Exemple:

$('input[type=checkbox]').change(function() { 
    // get id of the current clicked element 
    var id = $(this).attr('id'); 
    // find elements with classname 'parent-<id>' and (un)check them 
    var children = $('.parent-' + id).attr('checked', $(this).attr('checked')); 
}); 

Live example here.

+0

+1 var id = this.id; (juste une option) – benhowdle89

+0

s'il vous plaît, jetez un oeil à ma mise à jour. – Alexandre

+0

@Alex, je vous ai donné un pointeur, maintenant * allez écrire du code * :) Si vous ne pouvez pas le faire fonctionner, postez une nouvelle question en indiquant le problème et ce que vous avez essayé. Il est inutile de vous fournir le code. –

Questions connexes