Tengo una lista con casillas de verificación, y lo necesito cuando se selecciona una -> selecciona una casilla de verificación específica. El código que obtuve solo funciona una vez.
let checkbox = document.querySelectorAll('.filter__check'); //All the checkboxes let available = document.querySelector('[name="filter.v.availability"]'); // One that i need be checked for (let i = 0; i < checkbox.length; i++) { checkbox[i].onclick = function(){ if(checkbox[i].name != "filter.v.availability" && available.checked == false) { available.checked = true; } } }No puedo entender por qué solo se aplica en el primer clic.
Creo que usar el evento de change encajaría mejor aquí.
También asegúrese de verificar si el cuadro en el que se hizo clic está marcado para que no se ejecute cuando se anule la selección de un cuadro.
let checkbox = document.querySelectorAll('.filter__check'); //All the checkboxes let available = document.querySelector('[name="filter.v.availability"]'); // One that i need be checked for (let i = 0; i < checkbox.length; i++) { checkbox[i].onchange = function() { if(checkbox[i].name !== "filter.v.availability" && checkbox[i].checked) { available.checked = true; } } } <ol> <li><input type="checkbox" class="filter__check"></li> <li><input type="checkbox" class="filter__check"></li> <li><input type="checkbox" class="filter__check"></li> <li><input type="checkbox" class="filter__check"></li> </ol> <input type="checkbox" class="filter__check" name="filter.v.availability">