Yo normalmente las validaciones las hago al enviar el formulario

. Y evitar su envío en caso de que el campo es incorrecto.
En el caso de hacer con onblur habría que guardar en una variable cuando el campo sea incorrecto, y no permitir que se envíe el formulario hasta que esa variable sea verdadera.