Javascript 自动选择子复选框
我必须处理sql库中的用户角色。 每个角色都有一个复选框,如果选中了“父项”,则选中“子项”复选框;如果选中了所有“子项”,则选中“父项” 我在一个页面中尝试了这个脚本,它成功了,但我无法在我的asp.net中实现它 这是我的脚本和代码Javascript 自动选择子复选框,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我必须处理sql库中的用户角色。 每个角色都有一个复选框,如果选中了“父项”,则选中“子项”复选框;如果选中了所有“子项”,则选中“父项” 我在一个页面中尝试了这个脚本,它成功了,但我无法在我的asp.net中实现它 这是我的脚本和代码 $(文档).ready(函数(){ $('.parent')。单击(函数(){ 如果($(this).is(':checked')) $(this).parent().find('.children input[type=“checkbox”]').attr('
$(文档).ready(函数(){
$('.parent')。单击(函数(){
如果($(this).is(':checked'))
$(this).parent().find('.children input[type=“checkbox”]').attr('checked','checked');
});
$('.children输入[type=“checkbox”]')。单击(函数(){
var numberofcheckbox=$(this).parents('.children').find('input[type=“checkbox”]).length;
if($(this).parents('.children').find('input[type=“checkbox”]”)。filter('input[checked=checked]”)。length==numberofcheckbox)
$(this).parents('div').find('.parent').attr('checked','checked');
});
});
-
移动列表项结束标记以封装子列表
<div>
<asp:DataList ID="outerDataList" runat="server" DataSourceID="ObjectDataSource2" >
<ItemTemplate>
<li>
<asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>'
Visible="False" />
<asp:Label ID="typeLabel" runat="server" Text='<%# Eval("type") %>'
Visible="False" />
<asp:CheckBox ID="chkEnabled" class="parent" runat="server"
Checked='<%# Eval("Enabled") %>' Text='<%# Eval("name") %>' />
<ul class="children">
<asp:DataList ID="innerDataList" runat="server" DataSource='<%# Eval("Roles") %>'>
<ItemTemplate>
<li>
<asp:Label ID="idLabelInt" runat="server"
Text='<%# Eval("id") %>' Visible="False" />
<asp:Label ID="typeLabelInt" runat="server"
Text='<%# Eval("type") %>' Visible="False" />
<asp:CheckBox ID="chkEnabledInt" runat="server"
Checked='<%# Eval("Enabled") %>' Text='<%# Eval("name") %>' />
</li>
</ItemTemplate>
</asp:DataList>
</ul>
</li>
</ItemTemplate>
</asp:DataList>
</div>
正如您目前所拥有的,
作为
的兄弟姐妹,而不是孩子,此选择器不起作用
除了破坏选择器之外,它也是无效的HTML。必须是
、或元素的子元素。这些元素唯一允许的子元素是
元素。(例外情况是
,也可以包含流内容而不是
元素。)要生成有效的HTML,必须将父
元素替换为
、
或
另外,我认为您需要选择单个元素的.closest()
,它选择与选择器匹配的第一个祖先,而不是选择与选择器匹配的每个祖先的.parents()
。使用实际呈现的HTML而不是ASP.NET服务器端标记调试JavaScript会容易得多。呈现的HTML是什么样子的?如果调试JavaScript,jQuery选择器是否总能找到您希望它们找到的内容?
$(this).parent().find('.children input[type="checkbox"]')