Hola! a mi tambien me pasaba lo mismo.
Lo que hago es que valido tambien en el php que los campos no esten vacios.
Y con respecto a la correctitud de los campos, pues termine haciendolo con javascript. Para esto colocaba antes del envio con ajax:
Código HTML:
if (form_valido('form1')) //form1 es el id del formulario
{
$.ajax({
...
})
}
la funcion form_valido como ves recibe el id del formulario que quieres validar. Arma esta funcion dependiendo de las necesidades de tu formulario.
Por ejemplo, yo valido con javascript si los campos estan vacios asi:
Código HTML:
//Verifica que una cadena no este compuesta solo de espacios en blanco
function vacio(q) {
var j = 0;
for ( i = 0; i < q.length; i++ ) {
if ( q.charAt(i) == " " ) {
j = j + 1;
}
}
if(j == q.length)
return true
return false
}
function campos_vacios(form)
{
var cant = form.elements.length-1; //-1 Por que se estaria contando el boton de submit
for (var i = 0; i < cant ; i++)
{
var aux = form.elements[i].className;
//Verifico si los campos requeridos estan vacios
if ((buscar_cadena(aux,"required") == true) && (vacio(form.elements[i].value) == true)) {
return true;
}
}
return false;
}
Espero que te ayude.