Hola a todos, escribo en esta oportunidad porque estoy trabajando con dos arrays de checkbox y he intentado validar que al seleccionar un check del array 1 me quite la selección del otro array de check. Pero no me funciona la validación, estos check se encuentra dentro de una tabla, el código que estoy utilizando es el siguiente:
<input type="checkbox" class="checkSoli" id=idRF'.$aRow[0].' name="idDetalleRF[]" value='.$aRow[0].' data-accion="seleccionar" > <input type="checkbox" class="checkSoli" id=idEH'.$aRow[0].' name="idDetalleEH[]" value='.$aRow[0].' data-accion="seleccionar" >
$('body').on('click', 'tbody#tbTramite input[type=checkbox]', function (e){ if($(this).is(':checked')) { var parent=$(this).val(); if($("#idRF"+parent).$(this).is(':checked')) { $("#idEH"+parent).removeAtrr('cheked'); }else if($("#idEH"+parent).$(this).is(':checked')) { $("#idRF"+parent).removeAtrr('cheked'); } } });
Si me pudieran decir que pasa porque no funciona, se lo agradecería.
Respuestas
De primeras veo tres cosas que se podrían mejorar. En primer lugar, esta línea usa un nombre incorrecto para el atributo checked
:
$("#idEH"+parent).removeAtrr('cheked');
Además, el nombre del método jQuery es removeAttr()
en vez de removeAttr()
. Así que la línea anterior debería ser:
$("#idEH"+parent).removeAtrr('checked');
Lo otor que veo un poco raro es esta línea de aquí:
$("#idRF"+parent).$(this).is(':checked')
Creo que el código debería ser algo así:
var id = $(this).val(); var parent = $('#idEH' + id); if ($(this).is(':checked')) { parent.removeAttr('checked'); // ... } else { parent.attr('checked'); // ... }
@javiereguiluz