Hola:
Las validaciones debes hacerlas desde el evento submit del formulario...
<form onsubmit="return validar(this)"...
Si durante la validación hay algo que no cuadre, se devuelve false y el form no se envía...
function valida(f) {
...
if (hay_problemas(f)) return false;
}
Saludos