Javascript: controllare se un checkbox è spuntato.

Un checkbox è un elemento di un form che può assumere due valori, spuntato o no.
Un checkbox spuntato si presenta così:

Potrebbe interessarci sapere se al click di invio di un form dato checkbox è spuntato.
Questa operazione è molro semplice con javascript e abbiamo a disposizione 2 modi possibili:

  1. Dando un nome al form che contiene il checkbox
  2. Assegnando un id al checkbox


Vediamo il primo metodo:

<form action="action" method="get" name="nomeForm">
   <input name="cb" type="checkbox" value="cb"><br> 
   <input type="button" value="Controlla" onclick="cbCheck()>
</form>
<script type="text/javascript">
    function cbCheck(){
        if (document.nomeForm.cb.checked)
            alert("CheckBox spuntato");
        else
            alert("CheckBox non spuntato");
    }
</script>

In pratica premendo il bottone Controlla, chiamiamo la funzione cbCheck() che controlla la condizione document.nomeForm.cb.checked, se tale condizione è vera vuol dire che il checkbox è spuntato altrimenti no.

Quindi genaralizzando la valutazione di CheckBox.checked torna vero se il checkbox è spuntato falso altrimenti.

Il secondo metodo, che funziona allo stesso modo, consiste nell’assegnare un id al checkbox:

<form action="action" method="get" name="nomeForm2">
   <input id="cb" type="checkbox"><br>
   <input type="button" value="Controlla" onclick="cbCheckId()>
</form>
<script type="text/javascript">
    function cbCheckId(){
        cbObj = document.getElementById('cb');
        if (cbObj.checked)
            alert("CheckBox spuntato");
        else
            alert("CheckBox non spuntato");
    }
</script>

La differenza sta nel come accediamo all’oggetto da controllare, nel primo caso specifichiamo il suo “precorso” a partire dal oggetto documento:
document.nomeForm.cb.checked nel secodo caso utilizziamo la funzione document.getElementById() per accedere all’oggetto e poi lo controlliamo con cbObj.checked

Per una demo potete visitare la pagina:
Demo controllare se un checkbox è spuntato