Blog and Web

HTML5. Validar formularios sin Javascript. Parte I.

HTML5 esta introduciendo nuevos atributos que harán, y ya hacen, más sencillo nuestro andar en crear mejores sitios web. Uno de estos atributos es pattern, específico para validar elementos input tipo text, search, url, tel, email, y password, es decir, para campos de texto de formulario.

¿Qué hace pattern?

Como su nombre ya adelanta, pattern busca un patrón/expresión regular dentro de un campo de texto y determina si este lo cumple o no. Por tanto, su función es validar la información introducida por los usuarios. Esta tarea es normalmente realizada por Javascript, pero suelen ser soluciones un tanto más complejas y dependientes de que esta tecnología este activada en el navegador.

¿Cómo usar pattern?

Pattern se maneja como cualquier otro atributo de input, y toma como valor una expresión regular. Ejemplo:

<form action="twitter.php">
<label for="twitter">Usuario de Twitter: </label>
<input type="text" pattern="^[A-Za-z0-9_]{1,15}$" name="twitter_account" id="twitter" />
<input type="submit" value="Enviar" />
</form>

En este formulario se pide el nombre de usuario de Twitter, si cumple con la expresión regular indicada “^[A-Za-z0-9_]{1,15}$” (admite caracteres alfanuméricos y guión bajo hasta un máximo de 15), el formulario será enviado normalmente, sino, el navegador mostrará una advertencia y evitará que el formulario se envié. En Chrome esta advertencia luce así:

¿Cuándo usar pattern?

Este atributo es soportado desde Firefox 4+, Chrome 5+, Opera 9.6 y IE 10+ que ya abarca un buen porcentaje de las visitas de un sitio web. Por tanto, mi sugerencia de uso es para aquellos formularios que no requieren una validación compleja (como mensajes de error personalizados, cambios en el estado del campo de texto, etc.) y que cuenta con una validación de lado del servidor. Un ejemplo bastante real de donde podrían usarse son los campos de comentarios de WordPress, donde actualmente no hay validación del lado del cliente, pero sí del servidor y que puede ahorrarnos algunos comentarios con campos inválidos.

También puede usarse como una forma complementaria de validación de lado del cliente, por ejemplo, para cuando Javascript este desactivado.

Leer: HTML5. Validar formularios sin Javascript. Parte II.