Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Seleccionar y deseleccionar checkbox con jQuery

7 de enero de 2016

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

#1

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

7 enero 2016, 8:28