El Noguer

Joaquim Perez i Noguer

validació de formularis amb HTML5

Filed under: Ciència i tecnologia,General — Joaquim Perez Noguer at 10:00 pm on Dimecres, març 19, 2014

HTML4 permetia escriure formularis, però alhora de validar els camps tot era força complicat. O s’havia d’escriure força Javascript per validar els camps abans que el formulari s’enviés al servidor o bé s’havia de validar tot al servidor. En general és bo validar tant en client i en servidor, ja que si no es valida en client, aleshores es tindran moltes més peticions al servidor i l’usuari notarà que el programa va lent; i si no es valida en servidor no hi ha garanties que un hacker no hagi manipulat la petició.  Per validar en client el meu consell és utilitzar jQuery + jQuery Validation Engine, per la banda del servidor aleshores dependrà de la tecnologia que s’utilitzi a la banda servidor ( Struts, JSF, Spring, .NET, php,  … ).

En HTML5  però la cosa ha canviat. HTML5 intenta facilitar la vida als programadors afegint validadors al llenguatge HTML.

Per exemple per fer obligatori un camp es pot posar required: <input type="text" name="name" required>

Per exemple validar un email es pot posar type=”email”: <input type="email" name="myEmail">

Fins i tot es pot indicar una expressió regular pattern=…: <input type="url" name="website"  pattern="https?://.+">

Els nous tipus de input són:

  • url
  • email
  • number
  • range
  • color
  • date
  • datetime
  • datetime-local
  • month
  • search
  • tel
  • time
  • week

La gran pega d’utilitzar la validació de formularis del HTML5 és la traducció dels missatges d’error. Els missatges sempre surten en l’idioma del navegador. O sigui que si utilitzes un navegador en castellà i en proves una  pàgina web en català, els missatges d’error sortiran en castellà en comptes de català i clar això no queda gaire bé de cara l’usuari.

Si per qualsevol raó no vols utilitzar la validació dels formularis HTML5 aleshores cal posar  <form  novalidate> … </form>

Més informació:



No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>