Foros del Web » Programando para Internet » Javascript »

Clase para validar campos.

Estas en el tema de Clase para validar campos. en el foro de Javascript en Foros del Web. Hola gente he pasado unos días armando esta clase (o pseudo clase para los fanáticos de la POO) cuya función intenta ser la de validar ...
  #1 (permalink)  
Antiguo 26/05/2004, 15:57
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 4 meses
Puntos: 4
Clase para validar campos.

Hola gente he pasado unos días armando esta clase (o pseudo clase para los fanáticos de la POO) cuya función intenta ser la de validar campos en un formulario html.
Basicamente valida si un campo es vacio, si el email es válido, si una fecha es válida, si dos campos son iguales, si el largo de caracteres es igual, menor o mayor a un nro, etc.

Me gustaría recibir comentarios sobre si le faltan cosas o si hay cosas que son innecesarias, etc.

Está hecha en base a mis necesidades pero intento hacerla lo mas genérica posible de modo que sea útil para todos.

Usarla es muy sencilla, solo le piden al objeto la validación que quieran hacer, le indican el campo y el mensaje a mostrar.
Ej.

objValidar.Vacio("Usuario","El nombre de usuario es requerido");

Pueden ver un ejemplo de como funciona y descargarla acá

Desde yá muchas gracias!

Aquí dejo una lista de las funcionalidades/métodos que tiene.

Código:
1.	objValidar.setEncabezado(valor)
	Objetivo: Setea el titulo del mensaje de error.
	Parámetros: String;
	Ej: objValidar.setEncabezado("[- Se encontraron errores en el formulario -] ");
	   
2.	objValidar.setErrorColor(valor);
	Objetivo: Setea el color de fondo para los campos con error;
	Parámetros: String;
	Ej: objValidar.setErrorColor("#FFF4F4");
	
3.	objValidar.Vacio(campo,msg);
	Objetivo: verifica si el campo es vacío. 
	Parámetros: campo String, msg String;
	Ej: objValidar.Vacio("Usuario","Debe completar el nombre de usuario");

4.	objValidar.Email(campo,msg);
	Objetivo: verifica si el email ingresado es válido. 
	Parámetros: campo String, msg String;
	Ej: objValidar.Email("email", "El email no es válido");	

5.	objValidar.Fecha(campo, msg);
	Objetivo: validar el formato de una fecha.
	Parámetros: campo String, msg String;
	Ej: objValidar.Fecha("fechaNacimiento","La fecha no es válida. Formato dd/mm/aaaa");

6.	objValidar.Iguales(campo1, campo2, msg);
	Objetivo: dado 2 campos verifica que estos sean iguales
	Parámetros: campo1 String, campo2 String, msg String;
	Ej: objValidar.Iguales("passwd1","passwd2","Los passwords son distintos");

7.	objValidar.Longitud(campo, longitud, msg);
	Objetivo: verifica que la longitud del campo sea mayor, menor o igual que un número 
	de caracteres dado
	Parámetros: campo String, longitud, integer, msg String;
	Ej: objValidar.Longitud("passwd1", ">", 8, "El password debe ser mayor a 8 caracteres"); 
		objValidar.Longitud("passwd1", "<", 6, "El password debe ser menor a 6 caracteres"); 
		objValidar.Longitud("passwd1", "=", 4, "El password debe ser igual a 4 caracteres");	

8. 	objValidar.Validar();
	Objetivo evaluar si hubieron errores en los campos del formulario. Devuelve TRUE si todo
	está ok y FALSE si hay errores.
	
9.	objValidar.getErrors();
	Objetivo: muestra en pantalla un informe con todos los errores que ocurrieron.
	Ej:
	
	if (objValidar.Validar()) document.frmContacto.submit() 	
	else objValidar.getErrors();)
__________________
Holden-@r
http://www.hvaldez.com.ar
  #2 (permalink)  
Antiguo 02/07/2004, 08:08
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 4 meses
Puntos: 4
UFA! 207 visitas y nadie me dijo "si es útil" o "no sirve para nada"
No tengo ningun feedback de esto.
Algún buen samaritano que se digne a pasarme un mensajito?
Saludos
__________________
Holden-@r
http://www.hvaldez.com.ar
  #3 (permalink)  
Antiguo 19/08/2004, 07:41
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Saludos.

Esta muy bien, auque un poco rigido aun.

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #4 (permalink)  
Antiguo 03/11/2004, 13:45
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 5 meses
Puntos: 6
De veras muy útil...
  #5 (permalink)  
Antiguo 24/03/2005, 21:19
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 21 años, 9 meses
Puntos: 3
te falta algo (2 cosas, bueno 3)

1 validar para el ingreso de un dato numerico
2 seleccionar un elemento de un combo box


lo otro, la integracion de otras validaciones, ej: yo tengo una validacion un tanto especial, la funcion la tengo lista, pero seria bueno que tambien el mensaje de error apareciera junto con el de las otras validaciones, solo el mesaje.


es mucho pedir, ajaja, pero es lo que hay
__________________
Saludos
Leo
  #6 (permalink)  
Antiguo 25/03/2005, 09:31
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 4 meses
Puntos: 4
Gracias leophp `por los comentarios los dos que pediste ya los puse, ahora en un rato publico la versión nueva.

es interesante hacer validaciones por fuera y solo poner el msg.
Vere como integrarlo.

Saludos
__________________
Holden-@r
http://www.hvaldez.com.ar
  #7 (permalink)  
Antiguo 25/03/2005, 09:34
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 3 meses
Puntos: 5
Compañero, la idea es muy buena, es mas es buenisima. Y digo esto porque esto mismo intentaba proponer en un post creado no hace mucho por mi que titulé "lanzo una idea". Ahi tienes el enlace:

http://www.forosdelweb.com/f13/quiero-lanzar-idea-282440/

Como podras leer, yo proponia crear entre todos un conjunto de clases lo mas abstractas posibles para utilizarlas luego y que ayudaran a la lectura de codigo. Queria que participasemos todos y crear clases tipo validaciones, utilidades, fechas... Y que todo el mundo dijera cuales eran sus necesidades para ir creandolas.

Yo empeze a crear la de validaciones, como tu. Y te pongo los enlaces por si la quieres mirar. Yo miraré la tuya a ver si entre las dos creo una de estable.

Como podras observar mi clase solo valida el campo nulo, el email, y la longitud de las cadenas pero es que empeze ha hacerla hace poco y ahora es epoca de vacaciones y no estoy por currar tambien en mis dias libres.

el .js con la clase (esta comentada)
http://webs.ono.com/usr004/jobegor/ClasesJavascript.js
El html con las pruebas que voy haciendo
http://webs.ono.com/usr004/jobegor/validaciones.htm

Bueno, tú parece que tienes mas carisma y te han hecho mas caso, si la cosa sale adelante yo intentaré ayudar en lo que pueda.

miraré tu archivo a ver que encuentro de util.
  #8 (permalink)  
Antiguo 25/03/2005, 09:55
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 3 meses
Puntos: 5
Despues de haberle hechado un vistazo tu clase es muchisimo mejor que la mia.

Se nota quien es el veterano y quien el principiante.

De todas maneras yo solo llevaba 5 dias con ella.
  #9 (permalink)  
Antiguo 25/03/2005, 11:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola Holden:

Me parece buena idea ... Aunque lo que siempre se quiere en estos script es que vaya el foco al primer elemento incorrecto...
No sé si como va la implemetación sea posible.

occiso: Tú también lo estás llevando bien.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 25/03/2005, 12:06
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 4 meses
Puntos: 4
Gracias caricatos, muy buena opinión. No va a haber problemas en poner el foco en el 1er error.
(Agregado a mi TO DO list)
Saludos,
__________________
Holden-@r
http://www.hvaldez.com.ar
  #11 (permalink)  
Antiguo 25/03/2005, 12:26
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 4 meses
Puntos: 4
Gracias a todos por sus comentarios subo la versión que tenia pero nunca publiqué. Le agregé algunas cosas hoy según lo leido en el post de leophp.
clsValidator 2.200050323

Cambios en esta versión

NOTA: todos los valores por default tienen su correspondiente propiedad para cambiarlos. Consultar la "pseudo" documentación que tiene el archivo.

1- Se optimizaron todas las expresiones regulares y se agregaron nuevas.
2- Se deja x default el color de Error #FFC1C1 (antes era "")
3- Se deja x default el formato de fecha dd/mm/aaaa
4- Se deja x default el mensaje "[- Se encontraron los siguientes errores en el formulario -]"
5- Se agrega la función setFormatoFecha('formato')
Formatos aceptados:
5.1- 'EURO': dd/mm/aaaa - formato europeo/sudamericano
5.2- 'ISO': aaaa/mm/dd - formato internacional ISO 8601
5.3- 'ANSI': aaaa-mm-dd hh:mm:ss am/pm - formato ANSI SQL
6- Se agrega la función setFormatoHora('formato')
Formatos aceptados:
6.1- '24': Formato 24 hs (1..23)
6.2- '12': Formato 12 hs (am/pm)
7- Se agrega la funcion objValidar.Hora()



Luego les pasteo la "TO DO List".
Escucho todas las sugerencias y pedidos.
__________________
Holden-@r
http://www.hvaldez.com.ar

Última edición por Holden; 25/03/2005 a las 12:29 Razón: Me olvidaba
  #12 (permalink)  
Antiguo 25/03/2005, 12:31
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 4 meses
Puntos: 4
Occiso

Occiso: luego conversamos sobre la "TO DO list" y si queres podemos repartirnos algunas cosas.
Saludos y gracias.
__________________
Holden-@r
http://www.hvaldez.com.ar
  #13 (permalink)  
Antiguo 25/03/2005, 13:56
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 3 meses
Puntos: 5
Te voy a decir dos sugerencias.

La primera es que veo innecesario que crees funciones para cambiar los valores de las propiedades o "datos miembros" como tu los llamas. En javascript no existen los metodos de acceso (public, private, protected..) asi que se puede cambiar igual sin necesidad de llamar a la funcion.

Ademas yo creo que esas propiedades aunque se pudieran hacen "privadas" no las haria, las dejaria publicas. Eso siempre depende del criterio. Si no crees que tenga razon me gustaria que me dijeras porque.

Edito para decir que las funciones pueden que fueran utiles pero no de la manera en qeu estan ahora, que directamente asignan el valor a los "datos miembro". Si te gusta asignar los valores con funciones almenos les controlaria los valores que les puedes poner. Por ejemplo el formato fecha puede valer 12 o 24 si no recuerdo mal, pues podrias mirar antes de asignarlo a la propiedad que se ha asignado uno de esos dos valores.

De todas maneras yo no creo que con javascript haya que estar mirandose tanto estas cosas, no olvides que es un lenguaje de proposito especifico. Yo dejaria estos detalles para otros tipos de lenguajes.



La otra sugerencia es que en los switch crees un "default: " con un mensaje que error que diga que la funcion no ha recibido una parametro correcto o algo asi. Es una manera de controlar un poco los errores que te puedan dar. Evidentemente solo controlas una minima parte,pero algo es algo.

Última edición por occiso; 25/03/2005 a las 14:01
  #14 (permalink)  
Antiguo 25/03/2005, 20:58
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 21 años, 9 meses
Puntos: 3
De acuerdo grx

Holden

te agradesco que tomaras en cuenta mis comentarios, y tb tan rapido, ya estoy usando las nuevas funciones.

saludos
__________________
Saludos
Leo
  #15 (permalink)  
Antiguo 02/10/2006, 18:05
 
Fecha de Ingreso: junio-2006
Mensajes: 19
Antigüedad: 17 años, 11 meses
Puntos: 0
Botton o Submit

Hey una consulta soy nuevo en php pero quiero utilizar tu clase pero tengo una duda.

el boton que utilizo para guardar lo declaro de type Submit pero asi no me funciona la clase solo me funciona cuando declaro el boton de type Botton pero entonces ya no me guarda nada en la base de datos.

estoy trabajando con php mysql.

Alguien me puede ayudar a solucionar el problema.
  #16 (permalink)  
Antiguo 03/10/2006, 09:11
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 4 meses
Puntos: 4
Lucho es correcto usar el type="button"
Si miras el ejemplo la logica es:

Si hay errores -> los muestro
sino -> mando el formulario usando document.formName.submit();

Se entiende?
__________________
Holden-@r
http://www.hvaldez.com.ar
  #17 (permalink)  
Antiguo 17/07/2008, 21:35
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 16 años
Puntos: 0
Respuesta: Clase para validar campos.

Este post Murio???? De verdad abandonaron la idea???
  #18 (permalink)  
Antiguo 18/07/2008, 00:31
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 3 meses
Puntos: 772
Respuesta: Clase para validar campos.

El mensaje original es de hace casi 2 años. Por favor, no reviváis temas tan antiguos.

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 10:08.