jQuery – Aprire un elemento/select cliccando su una checkbox

Oggi vediamo come far aprire un elemento o semplice select html solamente cliccando su una checkbox grazie a jQuery. Utile per form e web design di tutti i tipi.

DEMO >>

La nostra struttura portante

La base del nostro script prevede ovviamente lo scheletro html, che possiamo riassumere molto semplicemente in poche righe di codice:

 <input name="click" class="checkbox" type="checkbox" value="click" />Clicca per espandere

     <select style="display:none;">
       <option value="">Seleziona una scelta
       <option value="tua scelta">W Targetweb            
    </select>

Come vedete ho reso “invisibile” la select da far apparire con display:none via css. In alternativa avrei potuto farlo anche tramite jQuery all’apertura del DOM (non sai di cosa parlo? guarda la guida introduttiva a jQuery).

Rendiamo dinamica la checkbox!

Una volta creata la struttura non ci resta che creare lo script che farà apparire la select al variare del check (status) della stessa. Per farlo usiamo la funzione .change al posto del semplice “click”. Grazie a change possiamo dire a jQuery di eseguire la funzione tutte le volte che l’elemento a cui è applicato cambia di stato (lo stato va impostato poco sotto). Nel nostro caso “l’evento” che scatena il change è la stato checked/unchecked della nostra checkbox.

Subito sotto la dichiarazione della funzione ho iniziato un ciclo if:

A) SE la checkbox (selezionata grazie alla sua classe) ha lo stato checked –> vuol dire che l’utente ci ha cliccato sopra e  l’ha selezionata –> recupera l’elemento del DOM successivo (comando “.next()”) e fallo apparire.

B) ALTRIMENTI –>vuol dire che la checkbox è rimasta NON cliccata –>  recupera l’elemento del DOM successivo (comando “.next()”) e fallo scomparire (.hide()).

$(document).ready(function() {

$('.checkbox').change(function(){

if ($(this).is(':checked')) {

$(this).next().show();

} else {$(this).next().hide();}

});

});//FINE DOM

Codice completo

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gestione checkbox - Targetweb.it</title>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
//Realizzato da Riccardo Mel
//www.targetweb.it / [email protected]
// Enjoy!

$(document).ready(function() {

$('.checkbox').change(function(){

if ($(this).is(':checked')) {

$(this).next().show();

} else {$(this).next().hide();}

});

});//FINE DOM
</script>

</head>

<body>

 <input name="click" class="checkbox" type="checkbox" value="click" />Clicca per espandere 

     <select style="display:none;">
       <option value="">Seleziona una scelta
       <option value="tua scelta">W Targetweb            
    </select>

</body>
</html>

Scarica il codice e Informazioni

DEMO >>

DOWNLOAD >>

La cosa bella è che applicando lo script possiamo gestire molte checkbox: ci basterà mettere l’elemento da far apparire subito dopo la checkbox e mantenere tutte le checkbox con la classe “checkbox”.

Un’ottima soluzione molto veloce e snella per gestire le proprie checkbox (anche multiple) in tutta comodità.

Any Feedback? 😉

  1. Complimenti!!
    Solo un dubbio: volevo inserire questa check box in un form mail che manda tramite post i dati ad un file di elaborazione..ma non riesco a riprendere i valori selezionati da un utente..mi potresti suggerire la soluzione?

  2. ai checkbox devi mettere come name “name[]” per farlo considerare come un array durante l’invio così hai tutti i valori selezionati, era questo il problema? D=

  3. Ciao Riccardo,
    io sto cercando una cosa molto simile ma che funzioni con un “select option”. Cioè ad una certa opzione mi deve visualizzare la successiva. Ho cercato invano nel web, ci sono diverse soluzioni, ma secondo troppo complesse e per il mio livello veramente incomprensibili. Tu hai una piccola soluzione?
    Grazie!

  4. Grazie Riccardo! complimenti era il tutorial che cercavo.
    Ma se hai più scelte in checkbox con valori diversi mi sai dire come rilevi il numero di ID della checkbox che hai selezionato? esempio ?

    non riesco a venirne a capo, sto iniziando con jquery e non capisco come fare!!

  5. Salve in anzi a tutto i miei migliori complimenti a Riccardo ,che con il suo script “Aprire un elemento/select cliccando su una checkbox ” mi ha risolto quasi un problema .
    Volevo chiedere se qualcuno ha provato questo script sostituendo checkbox con RADIO,io ci ho provato ma quando li seleziono mi rimangono tutti aperti.
    In attesa saluto

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Up Next:

Social icons set definitivo con Pinterest e Google plus inclusi

Social icons set definitivo con Pinterest e Google plus inclusi