La validación es para hacerla con javascript antes de enviar el formulario al servidor.
De forma muy simple éste es el esqueleto y la forma de usarla:
http://jsfiddle.net/3WWgW/2/
Librería:
Código Javascript
:
Ver originalfunction JsValidator(form){
this.form=form;
this.validar=function(){
var n=this.form.elements.length;
for (var i=0;i<n;i++)
{
var elemento=this.form.elements[i];
if (elemento.hasAttribute("regexp"))
{
var regExp = new RegExp(elemento.getAttribute("regexp"));
var txtError=(elemento.hasAttribute("error"))?elemento.getAttribute("error"):"";
if (!regExp.test(elemento.value))
{
return { valido:false, texto: txtError };
}
}
}
return { valido:true };
}
}
Código HTML:
Ver original<form id="form1" method="get" action="http://www.marca.com"> Email:
<input type="text" name="email" regexp="^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" error="El email no es correcto." /><br/> Nick:
<input type="text" name="nick" regexp="^.+$" error="El nick es obligatorio" /><br/> Pais:
<input type="text" name="pais" /><br/> <input type="submit" valure="enviar" />
Javascript para la página donde está el form:
Código Javascript
:
Ver originalwindow.onload=function(){
var form=document.getElementById("form1");
var validador=new JsValidator(form);
form.onsubmit=function(){
var respuesta=validador.validar();
if (!respuesta.valido)
{
alert(respuesta.texto);
return false;
}
return true;
};
};
Este ejemplo está hecho en penas 10 minutos. Se puede mejorar la librería mucho, por ejemplo haciendo que el error aparezca en un div flotante encima del elemento que ha provocado el error. También es posible crear una colección de patrones regulares genéricos, como el patrón de EMAIL, el de cadena no vacía, el de campo numérico, el de formato de fechas válido, etc. Y en vez de usar el atributo regexp, crear otro atributo nuevo, que sirva para usar patrones regulares que ya están por defecto en esa colección de la librería de validación. Etc.