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

84

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

desfile de calle
fuente

Respuestas:

145

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

$('input:checkbox').removeAttr('checked');
Tatu Ulmanen
fuente
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().

Kevin Q. Yu
fuente
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.

Sundeep
fuente
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; 
}); 
Dean Burge
fuente
4
 $(":checkbox:checked").each(function () {

 this.click(); 
});

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

Yene Mulatu
fuente
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.

Kavinder
fuente
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); 
});
Michel Ayres
fuente
1

Usé algo así

$(yourSelector).find('input:checkbox').removeAttr('checked');
Andrej Gaspar
fuente
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>
ankush
fuente
3
Se desaconsejan las respuestas de solo código. Realmente desea incluir algunas explicaciones.
GhostCat