Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自动选择子复选框_Javascript_Jquery_Asp.net - Fatal编程技术网

Javascript 自动选择子复选框

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('

我必须处理sql库中的用户角色。 每个角色都有一个复选框,如果选中了“父项”,则选中“子项”复选框;如果选中了所有“子项”,则选中“父项”

我在一个页面中尝试了这个脚本,它成功了,但我无法在我的asp.net中实现它

这是我的脚本和代码

$(文档).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"]')