jQuery – 复选框和checkall – 如果相关复选框发生更改,则监视和更改状态

使用jQuery 1.9.1,并使用IE8和Firefox。 在我的页面上,我有一个表,其中包含动态创建的复选框。

显示时,几行的HTML如下所示:

  

当用户点击房间时,将检查与该房间相关的所有相关复选框(PCNbrXXX)。 用户还可以选择单个复选框,或者可以选择/取消选择单个复选框。

我注意到的是,如果我检查Room Nbr,它会检查所有相关的复选框,但如果我单独取消选中,则会选中Room Nbr复选框。 我用来检查所有方框的代码是:

 $('#mytable').on('click','.checkall', function() { $('input.' + this.id).prop('checked', this.checked); }); 

我用来捕获个别支票的代码是:

 $('#mytable').on('click', function() { $('input.' + this.id).prop('checked', this.checked); }); 

在IE8和Firefox中,我需要做的是监控是否检查了任何单独的复选框并将Room Nbr复选框的显示状态更改为(1)显示检查是否检查了该行上的所有复选框,(2)更改为不确定如果一行中有1个或多个被清除,则状态(和清除检查),以及(3)如果行上的所有单独复选框都被清除则显示清除。

我为每个单独的复选框分配了一个类,它为我提供了Room Nbr复选框的名称和ID,但我不知道如何管理上述#1和#3中的状态,或者如果#2(显示不确定)在IE8中可以使用status)。 至少,我想要将状态切换为选中状态(如果全部都已选中),或者如果已清除该行中的1个或更多,则清除状态。

我很欣赏有关如何进行上述操作的任何建议。 我正在使用以下内容来了解​​在任何给定时间检查的内容:

 $("input[name*=PCNbr]:checked").map(function () {return this.name;}).get().join(",") 

并且我认为我可以抓住我分配给他们的class级,但还没有让它正常工作。

谢谢!