使用嵌套列表视图中的复选框.父复选框使用JQuery选择所有子复选框
Using checkbox in nested listview. Parent checkbox selects all child checkbox using JQuery
我有一个嵌套的列表视图,在父元素和子元素中都有复选框。我想写一个jquery,当父复选框被选中时,选择所有的子复选框,当所有的子框都被单独选中时,父复选框应该被选中。我无法使用JQuery找到子元素名称。它给了我最后一个列表绑定的elementId。以下是代码片段:
<div id="div1">
<asp:UpdatePanel runat="server" ID="upQuestionGroup">
<ContentTemplate>
<asp:ListView ID="lvGroup" runat="server" DataKeyNames="ID">
<LayoutTemplate>
<table ID="tableGroupList">
<tr>
<th>Choose Questions</th>
</tr>
<tr runat="server" id="itemPlaceholder"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr id="QuestionGroupName">
<asp:Label runat="server" ID="lblGroupId" Text='<%#Eval("ID") %>' Visible="false"></asp:Label>
<td>
<asp:Label runat="server" ID="lblQuestionGroup" Text='<%#Eval("Name")%>' />
</td>
<td>
<asp:CheckBox runat="server" ID="chkCrcAuditGroup" onclick="javascript:ChkAllItems(this);" />
</td>
</tr>
<tr id="tableQuestion">
<td>
<div id="QuestionList">
<asp:UpdatePanel runat="server" ID="upQuestionList">
<ContentTemplate>
<asp:ListView ID="lvQuestionList" runat="server" DataKeyNames="ID">
<LayoutTemplate>
<table ID="tableQuestionList">
<tr runat="server" id="itemPlaceholder"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label runat="server" ID="lblQuestion" Text='<%#eval("question")%>'></asp:Label>
</td>
<td>
<input runat="server" id="chkSelectQuestion" type="checkbox" value='<%#Eval("ID")%>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
尝试此代码
- JavaScript
function ChkAllItems() {
var grdControl = document.getElementById('lvQuestionList');
var GrdInputs = grdControl.getElementsByTagName("input");
var ChkAll = document.getElementById('<%=chkCrcAuditGroup.ClientID%>');
for (var i = 0; i < GrdInputs.length; ++i) {
if (ChkAll.checked == true) {
GrdInputs[i].checked = true;
}
else {
GrdInputs[i].checked = false;
}
}
}
$('.yourClass').click(function(){
$('input[type=checkbox]').click(function () {
// children checkboxes depend on current checkbox
$(this).next().find('input[type=checkbox]').prop('checked',this.checked);
// go up the hierarchy - and check/uncheck depending on number of children checked/unchecked
$(this).parents('ul').prev('input[type=checkbox]').prop('checked',function(){
return $(this).next().find(':checked').length;
})
});
});
- 通过复选框选择形成填充
- jQuery根据相关复选框选择求和单元格
- 根据用户复选框选择显示或隐藏下拉框
- 复选框选择组合
- 如何根据角度中的复选框选择过滤结果
- 根据复选框选择 jQuery 更新文本框
- jquery选择复选框选择的值
- 复选框选择/取消选择触发器第一次工作,但在随后的尝试中失败
- 如何发布单选和复选框选择?表单由php和js处理
- 使用querySelectorAll进行的复选框选择不起作用
- 具有延迟的多个复选框选择以检查其他复选框更改
- 显示 jQuery 复选框选择
- 复选框选择似乎彼此不一致
- 一个变量,多个复选框选择/取消选择 jQuery
- 使用 Json 数据源在数据表中实现复选框选择
- 使用 Javascript 更新复选框选择时的输入字段
- 将复选框选择保留在多页分页中
- 在复选框选择后验证输入类型文本
- 如何根据 Javascript 中的复选框选择打开引导模式窗口
- 如何检测和获取 asp.net 中的复选框/选择框(html 标记)值