【发布时间】:2013-10-08 17:07:38
【问题描述】:
JQuery 1.9.1 并使用 IE8 和 Firefox 作为浏览器。
我发布了一个尚未回答的问题here - 希望通过重新提出问题我可以得到答案。
下面是我在网页上显示的表格中几行的 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>
如果用户点击Room No 2,那么Room No 2 中的所有PC(分配给各个PC 的RoomNbr2 类)都会被检查。同样,如果 Room No 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 应保持选中状态,而 Room No 2 的复选框将处于未选中状态(不改变 204 复选框的状态)或进入不确定状态(除了视觉上显示已选中)。
在任何给定时间,我都知道检查了哪些机器:
$("input[name*=PC]:checked").map(function () {return this.name;}).get().join(",")
这是我真正想知道的。我只是不希望 Room No 复选框在不再选中所有相关复选框时表明它们已被选中。我发现的所有示例都具有完全选中/未选中的性质。
对于如何最好地解决此问题的任何想法或方向,我们将不胜感激。
【问题讨论】:
标签: javascript jquery html checkbox