JQuery 1.9.1 并使用 IE8 和 Firefox 作为浏览器。
我在这里发布了一个尚未回答的问题 - 希望通过重新制定问题我可以得到答案。
下面是我在网页上显示的表格中几行的 HTML。
<tr>
<td>
<label for="RoomNbr2" align="right"> Room No 2
<input type="checkbox" align="left" class="checkall" id="RoomNbr2" name="RoomNbr2">
</label>
</td>
<td>
<label for="PCNbr203" align="right"> 203
<input type="checkbox" align="left" id="PCNbr203" name="PCNbr203" class="RoomNbr2">
</label>
</td>
<td>
<label for="PCNbr204" align="right"> 204
<input type="checkbox" align="left" id="PCNbr204" name="PCNbr204" class="RoomNbr2">
</label>
</td>
</tr>
<tr>
<td>
<label for="RoomNbr3" align="right"> Room No 3
<input type="checkbox" align="left" class="checkall" id="RoomNbr3" name="RoomNbr3">
</label>
</td>
<td>
<label for="PCNbr310" align="right"> 310
<input type="checkbox" align="left" id="PCNbr310" name="PCNbr310" class="RoomNbr3">
</label>
</td>
<td>
<label for="PCNbr320" align="right"> 320
<input type="checkbox" align="left" id="PCNbr320" name="PCNbr320" class="RoomNbr3">
</label>
</td>
<td>
<label for="PCNbr340" align="right"> 340
<input type="checkbox" align="left" id="PCNbr340" name="PCNbr340" class="RoomNbr3">
</label>
</td>
<td>
<label for="PCNbr350" align="right"> 350
<input type="checkbox" align="left" id="PCNbr350" name="PCNbr350" class="RoomNbr3">
</label>
</td>
</tr>
如果用户单击2 号房间,那么 2 号房间中的所有 PC (RoomNbr2
分配给单个 PC 的类别)都会被检查。同样,如果2 号房间被选中然后被取消选中,那么所有具有该类的 PC 都会效仿。
我使用此代码来监视checkall
房间的类:
$('#mytable').on('click','.checkall', function() {
$('input.' + this.id).prop('checked', this.checked);
});
我使用此代码来监控表格上的单个点击:
$('#mytable').on('click', function() {
$('input.' + this.id).prop('checked', this.checked);
});
我需要做的是在选中2 号房间(或 3 号房间)复选框并且其中一个从属复选框变为未选中状态时更改它的状态。
例如:
如果我单击 2 号房间,则 2 号房间的复选框将被选中,203和204也将被选中。
如果我取消选中203,那么204应该保持选中状态, 2 号房间的复选框进入未选中状态(不更改204复选框的状态)或进入不确定状态(除了视觉上显示已选中的状态)。
在任何给定时间,我都知道检查了哪些机器:
$("input[name*=PC]:checked").map(function () {return this.name;}).get().join(",")
这是我真正想知道的。我只是不希望Room No复选框指示它们在不再选中所有相关复选框时被选中。我发现的所有示例都具有全部检查/全部未检查的性质。
对于如何最好地解决此问题的任何想法或方向,将不胜感激。