Suggerimento rapido crea Datepicker cross-browser in pochi minuti

In questo suggerimento rapido, ti mostrerò come utilizzare il nuovo input di data HTML5 e quindi fornirò una soluzione di interfaccia utente fallback jQuery per i browser che non supportano ancora questo nuovo tipo di input.


Preferisci un video tutorial?


Tutorial scritto

Siamo stati tutti lì. Hai creato un modulo e ora hai bisogno che l'utente inserisca una data. Ma come si controlla in che formato inseriscono la data? Non sarebbe più facile se potessimo usare un controllo del calendario o un Datepicker? Assolutamente! Sfortunatamente, però, solo un paio di browser supportano il nuovo HTML5 Data tipo di input. Va bene però, utilizzeremo l'interfaccia utente di jQuery per fornire una riserva!


Passaggio 1: la soluzione nativa

Iniziamo a pianificare per il futuro e supponiamo che l'utente stia lavorando in un browser moderno che supporti un DatePicker.

     Date picker     

Al momento di questa stesura, solo Webkit e Opera supportano questo tipo di input. In Firefox e Internet Explorer, il browser verrà automaticamente impostato su una semplice casella di testo, non ideale!

Usiamo l'interfaccia utente di jQuery per compensare.


Passaggio 2: scarica l'interfaccia utente di jQuery

Lo strumento jQuery UI datepicker funziona meravigliosamente, ed è un gioco da ragazzi per "installare". Per prima cosa, scarichiamo una versione personalizzata dell'interfaccia utente di jQuery, visitiamo la pagina di download e controlliamo solo gli elementi "Core" e "Datepicker". Lascia tutto il resto deselezionato.

Fai clic su download e riceverai un file zip contenente i file necessari. Trasferisci sul tuo progetto il file dell'interfaccia utente jQuery e la directory CSS.


Passaggio 3: integrazione

Con l'interfaccia utente di jQuery importata nel nostro albero delle directory, abbiamo bisogno di includere i file necessari, in particolare i file CSS e JavaScript.

     Date picker        

Nota come abbiamo incluso il nostro foglio di stile dell'interfaccia utente jQuery personalizzato, la libreria jQuery - attualmente alla versione 1.6 - e lo script dell'interfaccia utente jQuery personalizzato, che ho rinominato in jquery-ui.js.


Step 4 - The date picker Metodo

La nostra base è impostata; ora dobbiamo interrogare il DOM per l'elemento di input desiderato e chiamare il date picker() metodo su di esso.

  

Solo questi pochi personaggi faranno il trucco. Se ora visualizziamo la pagina in Firefox e clicchiamo sull'elemento di input, vedremo il datepicker in effetti.


Passaggio 5: fornitura del fallback

Quello che abbiamo qui funziona, ma c'è un problema. Se torniamo a un browser avanzato come Chrome, siamo ora in doppio dovere. Entrambi i datapicker nativi e di fallback sono attivi contemporaneamente. Abbiamo bisogno di un modo per specificarlo, se il browser supporta il Data tipo di input, non fare nulla Questo è facile!

     Date picker         

In un progetto del mondo reale, è probabile che astrarre questo analisi codice per il proprio metodo, o utilizzare Modernizr, ma questo farà il trucco per scopi di test.

Nel codice qui sopra, prima creiamo un elemento di input, quindi cerchiamo di impostarlo genere attributo uguale a Data. Ora se il browser non riesce a farlo - significa che non capisce cosa Data type is - possiamo quindi supporre che sia un browser più vecchio e fornire invece il fallback dell'interfaccia utente jQuery. Semplice!


Passaggio 6: Opzioni Datepicker

Lo strumento datepicker viene fornito con una varietà di sostituzioni; puoi rivedere l'intero elenco qui.



Esaminiamo una coppia insieme. Cosa succede se si desidera specificare un formato di data specifico. Piuttosto che Y / M / D, preferiamo usare Y-M-D. Per fare ciò, usiamo il formato data proprietà.

 $ ('# date'). datepicker (date date: 'aa-mm-gg');

Bene, è stato facile. Quindi, diciamo che vogliamo solo che l'utente sia in grado di selezionare una data tra ora e quattro giorni da adesso. Questo è un gioco da ragazzi quando usiamo il MaxDate opzione. Una caratteristica a portata di mano è che possiamo usare termini relativi, come ad esempio +4, per quattro giorni da adesso.

 $ ('# date'). datepicker (maxDate: +4);

Stiamo solo grattando la superficie qui, ma questo dovrebbe iniziare! Datepicker cross-browser in pochi minuti!