Checkbox grafici: due soluzioni

di: Cesare Lamanna     07 Gennaio 2008

La personalizzazione grafica degli elementi dei form con Javascript (ma anche con i CSS...) è da sempre oggetto di discussione. Più che mai oggi, con l'abbondanza di soluzioni rese possibili dai tanti framework per effetti spuntati negli ultimi due anni.

Rispetto all'usabilità e all'accessibilità, la preoccupazione maggiore è relativa alla resa e al funzionamento degli elementi sottoposti al maquillage grafico in condizioni particolari, a partire da quei browser che non abbiano il supporto a Javascript o che lo abbiano disabilitato. Mai, quindi, si dovrebbe scegliere tra quelle disponibili e rintracciate in rete una soluzione che non sia ispirata al principio della graceful degradation o che non si basi sui dettami del cosiddetto Javascript non intrusivo. Detto altrimenti: se senza Javascript il form perde il suo accattivante aspetto grafico, ma funziona ugualmente assumendo il suo aspetto normale, di default, va bene, altrimenti meglio lasciar perdere. Per altre considerazioni in merito vi rimando a questo post di Alessandro Fulciniti uscito tempo fa su Edit e ai relativi commenti.

In questo articolo segnaleremo delle soluzioni relative alla personalizzazione grafica di checkbox (e in parte di radiobutton), elementi che a differenza di altri come i campi di testo poco si prestano alla modifica dell'aspetto via CSS (cosa che spiega l'abbondanza di script che li riguardano). Ne approfitteremo per cercare di fornire anche delle linee guida basilari che possano servire nella scelta di questa o quella soluzione.

Partiamo con uno script basato su jQuery: jQuery Checkbox. Ecco il primo esempio. Come si vede, il classico checkbox è stato sostituito da due piccoli asterischi, grigio per lo stato unchecked, giallo per checked (trovate le due immagini insieme a tutti gli esempi nel pacchetto zip allegato all'articolo).

L'uso del plugin è di una semplicità disarmante, anche perché non è richiesto, nella configurazione di base, l'utilizzo di CSS. Il codice parla da sé. Nella sezione head andiamo a richiamare i due script fondamentali:

<script src="jquery-1.1.3.1.pack.js" type="text/javascript"></script>
<script src="jquery.checkbox.js" type="text/javascript"></script>

Una semplice istruzione Javascript serve a inizializzare l'effetto (va nel body della pagina):

<script type="text/javascript">
$(function(){
$("#checkbox").checkbox({checked: "asterisk_yellow.jpg", unchecked: "asterisk_gray.jpg"});
});
</script>

Non bisogna fare altro che specificare l'URL delle due immagini da usare, rispettivamente, per lo stato checked e per lo stato unchecked dei checkbox. Nel nostro caso, tramite l'uso dei selettori di jQuery, l'effetto è applicato a tutti i checkbox che si trovano all'interno del form con id="checkbox", indicato nella funzione con #checkbox. Questa la parte HTML:

<form method="post" action="/" id="checkbox">
<fieldset>
<legend>Il mio form</legend>
<ol>
<li><input type="checkbox" name="chk1" id="chk1" /> check 1</li>
<li><input type="checkbox" name="chk2" id="chk2" /> check 2</li>
<li><input type="checkbox" name="chk3" id="chk3" /> check 3</li>
</ol>
</fieldset>
</form>

Guide JavaScript

Guida jQuery UI

Creare siti ricchi e dinamici con jQuery UI, il progetto ufficiale...

Guida Javascript: tecniche avanzate

Una guida dal taglio pratico per approfondire la programmazione a...

Guida jQuery

I fondamenti teorici e pratici per usare al meglio il più popolare...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

22 Febbraio 2010 a Milano
Disponibilità: 3 Posti

Nessun corso previsto