2009-10-24 4 views
0

J'essaie d'afficher un menu lorsque l'une des cases est cochée, comme vous pouvez le voir dans la capture d'écran ci-dessous, elle montre le nombre de sélections et le menu disparaît également quand aucun n'est sélectionner.fadein/fadeout div sur checkbox sélectionner/désélectionner

alt text http://i38.tinypic.com/200tow0.jpg

Je suis en mesure d'afficher le menu avec ce code

$("input[name='id[]']").focus(function(){ 
    $("#menu").fadeIn(); 
}); 

Cependant, je ne sais pas comment cacher quand les cases à cocher sont désélectionné et comment compter le nombre de sélections.

Merci.

Répondre

2

Lorsque vous cochez une case, l'événement de mise au point ou de clic est déclenché. Vous pouvez compter les cases cochées avec

$("input:checked").length; 

Si vous utilisez ce numéro pour cacher votre menu, il devrait être possible:

$("input[name='id[]']").click(function(){ 
    if($("input:checked").length > 0) { //checked boxes? 
     if($("#menu:visible").length == 0) { //menu not visible? 
      $("#menu").fadeIn(); 
     } 
    } else { 
     $("#menu").fadeOut(); 
    } 
}); 
0

Pour compter le nombre de sélections que vous pouvez utiliser:

$("input[type='checkbox']:checked").length; 

So ..

$("input[type='checkbox']").click(function(){ 
    if ($("input[type='checkbox']:checked").length < 1) 
    $("#menu").hide(); 
}); 
0
$("input[name='id[]']").focus(function(){ 
    if ($(this).is(':checked')){ 
    $("#menu").fadeIn(); 
    }else{ 
    $("#menu").fadeOut(); 
    } 
}); 

Cela devrait faire ce que vous avez besoin,

EDIT:

Votre sélecteur ne semble pas correct cependant. Vous devriez le rendre plus spécifique. par exemple:

si elle commence par id [vous pouvez le faire de cette façon:

$("input[name^=id\\[]") 

cela inclura tous les champs de saisie de leurs noms commençant par « id [ » et « \ » ceci est pour échapper à ce '['.

Espérons que ça aide, Sinan.