Hola:
Deberías replantearte todo, porque desde el principio haces las cosas mal...
Por lo que veo, debes estar usando un botón normal, y se tiene que usar un botón submit... lo de cambiar el action, como no haya una razón lógica, deberías evitarlo... y luego, si con estos cambios funciona tu formulario, la validación debes asociarla al evento de envío (onsubmit), y cancelarla con el valor false:
<form onsubmit="return validar(this)";...
function validar(f) {
if (__no_valida__) return false; // cancelamos el envío...
}
Saludos