2011-09-18 41 views
0

我有以下函数添加/基于是否选择页面上的复选框中删除样式的按钮:添加一个检查,如果任何复选框已经W中/ jQuery的

var checkboxes = $(".chkbx").change(function() { 
    var allIsChecked = checkboxes.length === checkboxes.filter(":checked").length; 
    all[0].checked = allIsChecked; 
    enableMyElement(checkboxes.filter(":checked").length > 0); 
}); 

var all = $("#checkall").change(function() { 
    checkboxes.attr("checked",this.checked); 
    enableMyElement(this.checked); 
}); 

function enableMyElement(b) { 
    $("#delBtn")[b?"removeClass":"addClass"]("dis"); 
} 

现在,这一切的作品很好,但只有在变化。我需要添加一个检查是否至少有一个复选框chkBx在页面加载时被选中。我想增加一个功能,这样的事情

function CheckForAnySelected() { 
    $(".chkbx").attr("checked").each( 
     function() { 
      // do something 
     } 
    ); 

的...但它看起来并不像一个很好的解决方案......,我肯定不知道如何使用我现有的代码集成。

回答

2
function CheckForAnySelected() {  
     if($(".chkbx").filter(":checked").size()>0) 
     { 
      return true; // atleast one is selected 
     } 
     else{ 
     return false; 
     }); 

,你可以使用它像

if(CheckForAnySelected()) 
{ 
//atleast one is checked 
} 
else 
{ 
// none checked 
} 

这里是小提琴http://jsfiddle.net/QNrZu/13/

+0

我接过的jsfiddle例如,插到我的页面,但我不断收到“一个被选中”是否被选中或不......我也尝试使用这个页面的例子,并得到相同的结果。所以我去了jsfiddle并删除检查负载,仍然得到“一个检查”。 – santa

+0

更改为此,它的工作原理:if($(“。chkbx”).filter(“:checked”).length> 0){ – santa

+0

无论如何它在最后工作':)'编辑答案,所以有人可能受益于在将来,'$(“:勾选”,this)“确实不是合适的选择器 – Rafay

相关问题