¿Cómo restablecer todas las casillas de verificación usando jQuery o JS puro?


Respuestas:


145

Si te refieres a cómo eliminar el estado 'marcado' de todas las casillas de verificación:

$('input:checkbox').removeAttr('checked');

Este script alterna el estado de las casillas de verificación. No estoy seguro de si estoy haciendo algo mal
Domingo

38
Tenga en cuenta que en jQuery v1.6 y superior, debería usar .prop ('comprobado', falso) en su lugar para una mayor compatibilidad entre navegadores; consulte api.jquery.com/prop
Henry C

Usé esto para restablecer el formulario antes de abrir un nuevo cuadro de diálogo. Después de esto, necesito poner una casilla de verificación 'marcada' y esto no funciona. Cuando miro el código generado, está 'marcado' pero en mi página no es $ ('input: checkbox'). RemoveAttr ('comprobado'); $ ('entrada [valor =' + val + ']'). attr ('comprobado', verdadero);
Gayane

1
Esta es ahora una respuesta obsoleta - ver: stackoverflow.com/questions/17420534/…
razón

47

Si desea usar la función de restablecimiento del formulario, es mejor que use esto:

$('input[type=checkbox]').prop('checked',true); 

O

$('input[type=checkbox]').prop('checked',false);

Parece que removeAttr()no se puede restablecer form.reset().


1
Aunque la respuesta aceptada también funciona, creo que esta es la mejor manera de hacerlo. Por favor, si está leyendo esto, considere usarlo de esta manera, ya que es la mejor práctica.
rafaelmorais

13

La respuesta anterior no funcionó para mí:

Lo siguiente funcionó

$('input[type=checkbox]').each(function() 
{ 
        this.checked = false; 
}); 

Esto asegura que todas las casillas de verificación estén desmarcadas.



11

En algunos casos, la casilla de verificación puede estar seleccionada de forma predeterminada. Si desea restaurar la selección predeterminada en lugar de establecerla como no seleccionada, compare la defaultCheckedpropiedad.

$(':checkbox').each(function(i,item){ 
        this.checked = item.defaultChecked; 
}); 


4
 $(":checkbox:checked").each(function () {

 this.click(); 
});

para desmarcar la casilla marcada, cambie su lógica para hacer lo contrario


3

Puede seleccionar qué div o parte de su página puede tener casillas de verificación marcadas y cuáles no. Me encontré con el escenario en el que tengo dos formularios en mi página y uno tiene valores prellenados (para actualizar) y el otro debe completarse nuevamente.

$('#newFormId input[type=checkbox]').attr('checked',false);

esto hará solo casillas de verificación en el formulario con id newFormId sin marcar.


2

Como se dijo en la respuesta de Tatu Ulmanen, usar el siguiente guión hará el trabajo

$('input:checkbox').removeAttr('checked');

Pero, como decía el comentario de Blakomen , después de la versión 1.6 es mejor usar jQuery.prop()en su lugar

Tenga en cuenta que en jQuery v1.6 y superior, debería usar .prop ('verificado', falso) en su lugar para una mayor compatibilidad entre navegadores

$('input:checkbox').prop('checked', false);

Tenga cuidado cuando su uso jQuery.each()puede causar problemas de rendimiento. (también, evite jQuery.find()en ese caso. Use cada uno en su lugar)

$('input[type=checkbox]').each(function() 
{ 
    $(this).prop('checked', false); 
});

1

Usé algo así

$(yourSelector).find('input:checkbox').removeAttr('checked');

1
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container check">
<button class="btn">click</button>
  <input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car<br>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car<br>
</div>
<script>
$('.btn').click(function() {

$('input[type=checkbox]').each(function() 
{ 
        this.checked = false; 
}); 
})
</script>
</body>
</html>

3
Se desaconsejan las respuestas de solo código. Realmente desea incluir algunas explicaciones.
GhostCat
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.