2009-10-24 142 views
0

我试图在任何复选框被选中时弹出一个菜单,正如您可以在下面的屏幕截图中看到的那样,它显示了选择的数量,并且当没有任何选项时菜单也消失选择。在复选框上淡出/淡出div选择/取消选择

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

我能够调出菜单,此代码

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

但是,我不知道如何来隐藏它当复选框未被选择并且如何计算选择的号码。

谢谢。

回答

2

当您选中复选框时,将触发焦点或点击事件。你可以用

$("input:checked").length; 

算选中的复选框如果您使用的号码隐藏你的菜单应该是可能的:

$("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

要计算选择的数量,您可以使用:

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

所以..

$("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(); 
    } 
}); 

这应该做你需要什么,

编辑:

虽然你的选择器看起来不太好。你应该让它更具体。 例如:

如果它与ID开始[你能做到这样:

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

这将包括所有输入字段的名字开始与“ID [”和“\”这是逃避这个'['。

希望它有帮助,思南。