Come reimpostare tutte le caselle di controllo utilizzando jQuery o JS puro?


Risposte:


147

Se intendi come rimuovere lo stato "selezionato" da tutte le caselle di controllo:

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

Questo script alterna lo stato delle caselle di controllo. Non so se sto facendo qualcosa di sbagliato
Sundeep

39
Nota che in jQuery v1.6 e versioni successive, dovresti usare .prop ('verificato', false) invece per una maggiore compatibilità cross-browser - vedi api.jquery.com/prop
Henry C

L'ho usato per ripristinare il modulo prima di aprire una nuova finestra di dialogo. Dopo questo devo mettere una casella di controllo "selezionata" e questo non funziona. Quando guardo il codice generato è 'controllato' ma sulla mia pagina non è $ ('input: checkbox'). RemoveAttr ('verificato'); $ ('input [valore =' + val + ']'). attr ('verificato', vero);
Gayane

1
Questa è ora una risposta obsoleta - vedi: stackoverflow.com/questions/17420534/…
raison

47

Se desideri utilizzare la funzione di ripristino del modulo, è meglio utilizzare questo:

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

O

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

Sembra che removeAttr()non possa essere ripristinato da form.reset().


1
Sebbene anche la risposta accettata funzioni, trovo che questo sia il modo migliore per farlo. Per favore, se stai leggendo questo, considera l'utilizzo in questo modo, poiché è la migliore pratica.
rafaelmorais

13

La risposta di cui sopra non ha funzionato per me -

Il seguente ha funzionato

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

Questo assicura che tutte le caselle di controllo siano deselezionate.



11

In alcuni casi la casella di controllo potrebbe essere selezionata per impostazione predefinita. Se desideri ripristinare la selezione predefinita invece di impostarla come non selezionata, confronta la defaultCheckedproprietà.

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


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

 this.click(); 
});

per deselezionare la casella selezionata, ruota la logica per fare il contrario


3

Puoi essere selettivo su quale div o parte della tua pagina può avere caselle di controllo selezionate e quali no. Mi sono imbattuto nello scenario in cui ho due moduli nella mia pagina e uno ha valori precompilati (per l'aggiornamento) e l'altro deve essere riempito di nuovo.

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

questo renderà solo le caselle di controllo nella forma con id newFormId come deselezionata.


2

Come detto nella risposta di Tatu Ulmanen, l' uso del seguente script farà il lavoro

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

Ma, come diceva il commento di Blakomen , dopo la versione 1.6 è meglio usare jQuery.prop()invece

Nota che in jQuery v1.6 e versioni successive, dovresti usare .prop ('verificato', false) invece per una maggiore compatibilità cross-browser

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

Fare attenzione quando lo si utilizza jQuery.each()può causare problemi di prestazioni. (inoltre, evita jQuery.find()in questi casi. Usa ciascuno invece)

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

1

Ho usato qualcosa del genere

$(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
Le risposte solo codice sono scoraggiate. Vuoi davvero includere alcune spiegazioni.
GhostCat
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.