Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/03/2010, 10:17
Avatar de ElJavista
ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: Problemas validación formularios con AJAX

Ok, te daré unas luces, yo he visto y hasta he hecho eso de validar con Ajax y enviar de manera tradicional y me parece mala rutina, se debe validar con Ajax solo si no se puede hacer solamente usando JavaScript. Por su puesto también debe haber una validación en el PHP.

Entonces puedes hacer dos cosas: validar con JavaScript o si lo amerita, validar con Ajax, pero si validamos con Ajax y enviamos el formulario de manera tradicional eso rompe con dos preceptos de Ajax:

En primer lugar el ajax pretende evitar la recarga y eso harás precisamente después de validar, muy malo.

En segundo lugar harás dos envíos, el primero con Ajax y el segundo de manera tradicional con lo cual en lugar de acortar el tiempo de procesamiento se incrementará, lo cual es completamente opuesto a lo que Ajax pretende servir. Se supone que con Ajax se debe acortar el tiempo de procesamiento.

Si es absolutamente necesario hacer la validación con Ajax, deberías envíar con Ajax el formulario y hacer el proceso con el mismo Ajax y devolver al respuesta con ese solo proceso, o sea que con Ajax guardas los datos del formulario. Un formulario solo con Ajax.

Para hacer eso debes evitar que el form se envíe al presionar el botón submit, no sabes qué botón es ese? pues ese que tiene esta forma:

<input type="submit" ...

Si no haz empleado ese código talvez hayas hecho esto:

<button>Enviar</button>

Si no colocas el atributo type="button" el firefox asume que es un submit, o sea, un botón de envío de formulario. Lo que tienes que hacer es simplemente colocar esto en la etiqueta form:

<form onsubmit="return false">

Con lo cual no se enviará nunca tu formulario de manera tradicional, envíalo solo con Ajax, y si no hace falta validarlo con Ajax, valida solo con JavaScript y envíalo de manera tradicional. Suerte!