JavaScript
x
17
17
1
@foreach($description as $key => $value)
2
<div class="row">
3
<div class="col-12 mb-3">
4
<div class="d-block" id="module">
5
<input type="checkbox" name="module_access[{{ $key }}]" class="module-checkbox ml-2" value="1">{{ $value['name'] }}
6
</div>
7
<div class="d-block ml-4 mt-2" id="subModule">
8
@if(isset($value['extras']))
9
@foreach ($value['extras'] as $index => $extra)
10
<input type="checkbox" name="module_access[{{ $key }}][{{ $index }}]" class="sub-module-checkbox ml-2" value="1">{{ $extra }}
11
@endforeach
12
@endif
13
</div>
14
</div>
15
</div>
16
@endforeach
17
I have this piece of code in my Laravel Blade File. I am using jquery (after 4 Years, so need a bit of help out here) to set the checkbox inputs under id #subModule as disabled. (This is working fine)
JavaScript
1
2
1
$('#subModule input[type=checkbox]').attr('disabled','true');
2
Now what I am trying to achieve is based on the checkbox inputs under id #module, the corresponding submodule checkbox should get enabled/disabled.
What I have done till now is this but it is still not working
JavaScript
1
5
1
$('body').on('click', '#module',function(event) {
2
if($('input[name="module_access"]:checked').val() != 1) {
3
$('#subModule select option').prop("disabled", false);
4
}
5
});
Can anyone help me? Any help will be much appreciated.
Advertisement
Answer
You need to use class
selector instead of id
. Then , on click of module
checkboxes use .closest("row").find(".subModule > input[type=checkbox]")
to refer your submodule checkbox and then simply do attr("disabled", false)
to remove disable.
Demo Code:
JavaScript
1
10
10
1
$('.subModule input[type=checkbox]').attr('disabled', true);
2
$(document).on('click', '.module input[type=checkbox]', function(event) {
3
//check if checkbox is checked
4
if ($(this).is(":checked")) {
5
//get closest .row and then find submodule checbox add false
6
$(this).closest(".row").find(".subModule > input[type=checkbox]").attr("disabled", false);
7
} else {
8
//make disable..
9
}
10
});
JavaScript
1
27
27
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
2
<div class="row">
3
<div class="col-12 mb-3">
4
<!--added class-->
5
<div class="d-block module">
6
<input type="checkbox" name="module_access[{{ $key }}]" class="module-checkbox ml-2" value="1">somethins
7
</div>
8
<!--aded class-->
9
<div class="d-block ml-4 mt-2 subModule">
10
11
<input type="checkbox" name="module_access[{{ $key }}][{{ $index }}]" class="sub-module-checkbox ml-2" value="1">1
12
<input type="checkbox" name="module_access[{{ $key }}][{{ $index }}]" class="sub-module-checkbox ml-2" value="1">2
13
</div>
14
</div>
15
</div>
16
<div class="row">
17
<div class="col-12 mb-3">
18
<div class="d-block module" id="module">
19
<input type="checkbox" name="module_access[{{ $key }}]" class="module-checkbox ml-2" value="1">somethins1
20
</div>
21
<div class="d-block ml-4 mt-2 subModule" id="subModule">
22
23
<input type="checkbox" name="module_access[{{ $key }}][{{ $index }}]" class="sub-module-checkbox ml-2" value="1">1
24
<input type="checkbox" name="module_access[{{ $key }}][{{ $index }}]" class="sub-module-checkbox ml-2" value="1">2
25
</div>
26
</div>
27
</div>