Molto probabilmente ognuno di noi si sarà imbattuto, durante la compilazione di un form, in spiegazioni ed etichette di campo del tipo gg/mm/aaaa oppure gg/mm/aa. Altrettanto spesso si sarà trovato di fronte a tre menu a tendina dai quali dover scegliere giorno, mese ed anno, magari chiedendosi che giorno della settimana sarà il 14 Aprile 2010.
Tutti questi passaggi, controlli, etichette e spiegazioni mettono in evidenza come sia difficile lavorare in maniera intuitiva e diretta con le date.
La risposta di jQuery UI al problema è il widget datepicker che in italiano definiremmo calendario.
L'utilizzo principale di questo tipo di controllo è da una parte quello di facilitare l'utente nell'inserimento di date in vario formato, dall'altro quello di ridurre al minimo errori nella formattazione delle date stesse.
Nella sua forma più semplice, il widget è attivabile su ogni elemento di input testuale selezionabile con jQuery (esempio):
$(".data:input").datepicker();
Data la diversità di utilizzo e la necessità di adattamento a vari formati di data (sia per sintassi che per lingua), datepicker offre un nutrito numero di opzioni che spaziano dall'impostazione del formato restituito, al restringmento delle date selezionabili a determinati range. Il tutto concorre ad ottimizzare l'esperienza utente e la gestione dell'input nella fase di rielaborazione dei dati.
L'esempio più classico nel quale si ha necessità di personalizzare il widget datepicker è quello di un modulo di prenotazione nel quale è necessario prevedere più lingue ed evitare che accidentalmente un utente possa richedere una prenotazione per date nel passato.
Per sintetizzare, le caratteristiche personalizzabili del widget riguardano l'interazione (in che modo il controllo viene attivato), il formato della data e gli elementi visibili del calendario.
'')true per rendere l'immagine (solitamente un'icona) l'unico mezzo per visualizzare il calendario.+7) o una stringa con valori e periodi ('y' per gli anni, 'm' per i mesi, 'w' per le settimane, 'd' per i giorni, ad esempio '+1m +1w').Di default, il linguaggio di datepicker è l'inglese, compresa la formattazione della data secondo lo schema mese/giorno/anno. Il modo più semplice per impostare il formato corretto in base al proprio linguaggio è quello di richiamare uno dei file di lingua presenti nella cartella i18n. In questo modo la localizzazione prescelta sarà applicata automaticamente ad ogni istanza del widget.
Nei casi in cui si dovessero gestire più lingue basterà includere il file di lingua completo jquery-ui-i18n.js ed impostare un linguaggio specifico richiamandolo nell'inizializzazione del widget:
$("#calendario").datepicker($.datepicker.regional['it']);
oppure impostandolo globalmente:
$.datepicker.setDefaults($.datepicker.regional['it']);
Le opzioni impostate in questo modo sono le seguenti:
0 per domenica (nel calendario inglese), 1 per Lunedì;true i giorni saranno elencati da destra verso sinistra.Ecco un esempio di localizzazione in italiano.
Le opzioni di questo gruppo servono per aggiungere o personalizzare il modo in cui viene visualizzato il calendario:
false)true, queste opzioni aggiungono in alto un menu a tendina che permette di scegliere velocemente il mese o l'anno. In questo modo l'utente può selezionare più rapidamente date moto distanti nel
futuro senza dover cliccare ripetutamente sui link di navigazione (esempio);'slow', 'normal', 'fast');1)2
mostrerà il mese corrente ed il prossimo) oppure un array numerico che definisca il numero di righe e colonne da riempire con i mesi ([2,3] mostrerà sei calendari disposti su due righe e tre colonne). Ecco un esempio;'show')Datepicker accetta fra le sue opzioni anche una serie di eventi, utili per impostare l'interazione fra il widget ed altri elementi della pagina:
true o false per rendere il giorno selezionabile, una stringa che rappresenti una classe CSS per la presentazione di default, un tooltip da associare al
giorno. Fate attenzione che questa funzione verrà applicata a tutti i giorni presenti nel widget comportando una
diminuzione nelle performance del controllo soprattutto durante la visualizzazione iniziale e se sono visualizzati più mesi tramite l'opzione numberOfMonths;this si riferisce all'input associato al widget;Il widget, oltre ai metodi generali di jQuery UI visti in precedenza, offre metodi specifici per interagire con i dati provenenti dal controllo, nonché per interagire con lo stesso.
[x, y] oppure un evento del mouse contenente tali coordinate. Se questo argomento non viene specificato, la finestra sarà centrata nello schermo.
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |