Javascript 如何使用jQuery启用/禁用嵌套复选框

Javascript 如何使用jQuery启用/禁用嵌套复选框,javascript,jquery,laravel-blade,Javascript,Jquery,Laravel Blade,现在我试图实现的是基于id#module下的复选框输入,相应的子模块复选框应该被启用/禁用 到目前为止,我所做的就是这样,但它仍然不起作用 $('#subModule input[type=checkbox]').attr('disabled','true'); })) 有人能帮我吗?任何帮助都将不胜感激。我看到您正在使用foreach来定义由#sameid(在您的示例中为id=“module”)标识的模块 id是唯一的,因此您的foreach可能会生成具有相同id的元素,因此jquery可

现在我试图实现的是基于id#module下的复选框输入,相应的子模块复选框应该被启用/禁用

到目前为止,我所做的就是这样,但它仍然不起作用

$('#subModule input[type=checkbox]').attr('disabled','true');
}))


有人能帮我吗?任何帮助都将不胜感激。

我看到您正在使用foreach来定义由#sameid(在您的示例中为id=“module”)标识的模块


id是唯一的,因此您的foreach可能会生成具有相同id的元素,因此jquery可能无法工作。

您需要使用
选择器,而不是
id
。然后,单击
模块
复选框,使用
最近的(“行”)。查找(“.subModule>input[type=checkbox]”)以引用您的子模块复选框,然后只需执行
attr(“disabled”,false)
即可删除禁用

演示代码

$('.subModule input[type=checkbox]').attr('disabled',true);
$(文档)。在('单击',')。模块输入[类型=复选框]',函数(事件){
//检查复选框是否已选中
如果($(this).is(“:checked”)){
//获取最近的.row,然后查找子模块checbox add false
$(this).closest(“.row”).find(“.subModule>input[type=checkbox]”)。attr(“disabled”,false);
}否则{
//使禁用。。
}
});

某物
1.
2.
有些事
1.
2.

检索时,如果我正在检查是否选中了模块复选框,则该部件不工作。有什么想法吗?如果($('.module input[type=checkbox]')是(':checked'){$(this).closest(“.row”).find(“.subModule>input[type=checkbox]”)attr(“disabled”,false);}是的,您需要使用
作为选择器,它将引用当前模块复选框。
$('#subModule input[type=checkbox]').attr('disabled','true');
$('body').on('click', '#module',function(event) {
  if($('input[name="module_access"]:checked').val() != 1) {
    $('#subModule select option').prop("disabled", false);
}