| Blog2j | |||||
|
Cerca con Google
Ricerca personalizzata
|
Validazione client con extJs
ExtJs (o qualunque altra libreria javascript) può essere usata in due modi diversi:
Il primo approccio è quello utilizzato solitamente in extJs, in questo tutorial vedremo invece un esempio di utilizzo non intrusivo di extJs per aggiungere la validazione lato client ad una form esistente. L'ottimo libro Pro JavaScript Techniques spiega nei dettagli come usare correttamente il javascript in modo non intrusivo. Usando le tecniche spiegate una pagina web è visualizzabile anche se il browser ha javascript disabilitato, il codice javascript aggiunge funzionalità per migliorare l'usabilità. Iniziamo a sviluppare un esempio pratico vedendo una semplice (forse anche troppo!) form html:
Questa form utilizza html standard, funziona su tutti i browser anche se javascript è disabilitato o non presente (quindi anche su cellulari o palmari con browser minimali). Con una singola istruzione javascript è possibile aggiungere la validazione lato client (clicca qui per l'esempio funzionante): A questo punto la vecchia form si è trasformata in una form con componenti extJs con validazione lato client. Inserendo alcuni dati si può vedere che il nome e cognome sono obbligatori, la data di nascita, l'email e il cap devono essere scritti con la giusta sintassi e altre cose simili. Se sono presenti errori viene mostrato un alert quando si cerca di fare il submit della form. Le validazioni da effettuare su ogni campo sono specificate tramite classi css aggiunte ai campi html input della form. Le classi disponibili corrispondenti a componenti extJs sono:
Altre classi utilizzabili su tutti i componenti sono:
Ovviamente per un campo di input possono essere usate più classi css, un esempio è il campo nome della form vista: <input type="text" name="nome" class="e-text e-required e-min-length-3 e-max-length-20 e-validator-validaNome" > Dopo aver aggiunto le classi css rimane solamente da includere i css e il javascript di estJs (per esempio sfruttando il servizio offerto da cachefile.net): <link rel="stylesheet" type="text/css" href="http://www.cachefile.net/scripts/ext/2.0.1/resources/css/ext-all.css" /> <script type='text/javascript' src='http://www.cachefile.net/scripts/ext/2.0.1/adapter/ext/ext-base.js' /> <script type='text/javascript' src='http://www.cachefile.net/scripts/ext/2.0.1/ext-all.js' /> <script type='text/javascript' src='http://www.cachefile.net/scripts/ext/2.0.1/source/locale/ext-lang-it.js' /> E il javascript che aggiunge la validazione (può essere scaricato da qui) in cui si specifica la form a cui aggiungere la validazione: <script src="extValidationBlog2j.js"/>
<script>
//aggiungo la validazione specificando un id
blog2j.addExtValidation(Ext.get('id_form'));
//oppure aggiungo la validazione a tutte le form presenti
Ext.select('form').each(blog2j.addExtValidation);
</script>
Il metodo addExtValidation si occupa di aggiungere la validazione alla form passata in base alle classi css presenti. In pratica cerca tutti gli input html all'interno della form che hanno una certa classe con il metodo select di extJs che ritorna tutti gli elementi del dom della pagina di un certo tipo con una certa classe. Per ogni elemento trovato crea un componente extJs aggiungendo le varie validazioni. Infine aggiunge una function javascript sull'evento onsubmit della form per controllare che tutti i campi siano validi e nel caso in cui non lo siano impedire il submit del form.
Articoli correlati:
Extjs vs jquery Griglia Extjs con paginazione, ordinamento e parametri di ricerca Nuovo sito ExtJs cambia licenza Validazione client con jquery Chiamate ajax verso bean di Spring con Dwr Gallerie di immagini con lightbox Sviluppo in javascript con eclipse Ganymede Gestione dei javascript e dei css in una web app con jawr Tutorial javascript Factory complesse con spring Gestione di una web app con eclipse e maven Creare una factory con spring Introduzione a groovy |
News
|
|||