Pre-validazione di un form con Javascript

di: Alvin Laini     24 Settembre 2007

La validazione dei dati immessi dall'utente in un form è sempre problematica; verificare ciò che egli ha digitato in determinati campi risulta essere un'operazione spesso noiosa e frustrante sia per lo sviluppatore sia per l'utente stesso.

Basti pensare alle migliaia di form sparsi per il web, spesso composti di decine di campi e che consentono, per esempio, l'iscrizione a corsi, seminari, forum, etc., ma che per un banale errore di digitazione ripresentano i campi da correggere segnalati in rosso o, addirittura, la ricompilazione di tutti i campi. Per fortuna ci viene in aiuto la validazione client-side con l'ausilio di Javascript. Vediamo in pochi step di cosa si tratta:

  • L'utente inserisce delle informazioni in un modulo
  • Dopo aver completato la compilazione, invia tutto al server
  • Prima che le informazioni arrivino al server è richiamata una funzione Javascript gestita dal browser che si occuperà di validare l'input dell'utente
  • Qualora tutti i campi risultino conformi alle regole impostate dal programmatore, i dati procederanno verso il server per una verifica più approfondita e sicura. Altrimenti all'utente sarà inviato un messaggio Javascript per segnalare l'errore, così che possa correggerlo e proseguire correttamente con l'invio

Questo tipo di approccio presenta vantaggi e svantaggi; sarà quindi utile valutare l'uso che se ne dovrà fare e analizzare l'importanza delle informazioni che si dovranno trattare (es. dati bancari).

Vantaggi:

  • L'utente ha in tempo reale un controllo sui valori inseriti nel campo
  • Non vengono sprecate risorse per inviare al server informazioni non corrette che dovranno poi essere riprocessate

Svantaggi:

  • Per usufruire di questo tipo di validazione il browser deve avere abilitato il supporto a Javascript
  • I dati inviati al server devono subire un ulteriore controllo per accertare la corretta integrità del dato

L'esempio che analizzeremo insieme viene in aiuto agli sviluppatori e agli utenti fornendo ai primi uno strumento flessibile e dinamico per il controllo dei dati inseriti e ai secondi uno strumento utile che farà risparmiare tempo nella compilazione di form complessi.

Per far questo ho creato un normale form di registrazione composto da svariati campi (nome, cognome, indirizzo, telefono, cellulare, note, preferenze); per ognuno di essi ho predisposto degli attributi aggiuntivi che prenderanno vita successivamente con l'ausilio di una funzione Javascript opportunamente integrata.

Scendiamo nel dettaglio, ecco la lista degli attributi da me aggiunti:

  • Obbligatorio [1|0]: stabilisce se il campo è obbligatorio o meno (es. se il campo è obbligatorio, il suo valore deve essere diverso da vuoto).
  • Dato[char|int]: stabilisce il contenuto del campo; se il contenuto di un campo è char il campo potrà contenere solo stringhe alfanumeriche, altrimenti se il campo è int potrà contenere solo numeri interi positivi/corretti.
  • Regex[pattern regex]: permette di validare il contenuto di un campo in base ad un'espressione regolare.
  • Msg_errore[stringa]: messaggio che visualizza l'utente tramite un alert Javascript se il valore inserito nel campo non è conforme alle regole specificate dagli altri attributi.

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida jQuery UI

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

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

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti