2010-07-12 6 views
0

J'ai une page dynamique.JQuery Checkbox numéro

Il y a plusieurs cases à cocher & J'utilise ce script pour montrer son respecté <div> seulement si la case est cochée.

 $(document).ready(function() { 
      $("#checkbox$").click(function() { 
      if (this.checked) { 
       $('#appear_div$').fadeIn('slow'); 
      } 
      else { 
       $('#appear_div$').fadeOut('slow'); 
      } 
      }); 
     }); 

    // Here $ is unique ID number for each <div> as my content is dynamic & 
    // I am using {foreach} tag. 

Maintenant, j'ai un autre parent dans lequel je veux que tous ci-dessus apparaissent.

Mais si aucune des cases ci-dessus n'est cochée Masquer aussi cette div Parent.

Voici le code que je utilise pour cette

function doInputs(obj){ 
var checkboxs = $("input[type=checkbox]:checked"); 
var i =0, box; 
$('#parent_div').hide();   
    while(box = checkboxs[i++]){ 
    if(!box.checked); 
    $('#parent_div').show(); 
    break;    
    } 
} 

Ce code fonctionne bien, sauf ce problème ...

Say,

Je vérifie 1 --- ID Checkbox > #parent_div show ---> # appear_div1 show -

Je coche l'ID de la case à cocher 2 ---> #parent_div show ---> # appear_div2 show -

Puis

I ID 1 Décocher Checkbox ---> #parent_div montrer ---> # appear_div1 Cacher -

I ID 2 Décocher Checkbox ---> #parent_div Cacher - -> # appear_div2 Hide -

là encore, si

I ID 2 Décocher Checkbox ---> #parent_div Afficher ---> # appear_div2 Show -

Maintenant Voici un problème ...

Même l'ID de case à cocher 1 n'est pas cochée Je peux voir # appear_div1 dans #parent_div.

Pourquoi est-ce? Où je vais mal ???

Merci.

Répondre

1
$(document).ready(function() { 
     $("#checkbox$").click(function() { 
     if (this.checked) { 
      $('#appear_div$').fadeIn('slow'); 
     } 
     else { 
      $('#appear_div$').fadeOut('slow'); 
     } 
     if ($("input:checkbox:checked").length){ 
      $('#parent_div').show(); 
     } else { 
      $('#parent_div').hide(); 
     } 
     }); 
    }); 

demo

+0

pas besoin de $ ("entrée: case à cocher: cochée"). Longueur == 0, il suffit d'utiliser si ($ (!. "Input: case à cocher: cochée") Longueur) – redsquare

+0

ahh Ouais! bonne idée ... fixe! ... merci ... :) – Reigel

+0

Merci .. Le problème est résolu. – MANnDAaR