No, no, no...
LOs botones parea enviar un formulario deben ser de tipo submit y las validaciones deben hacerse con el evento submit (manejador onsubmit) de la etiqueta form... la función de validación debe devolver (return) true o false... en el primero de los casos pasa la validación y en el segundo no (solo se envía cuando pasa...)
Ejemplo sencillo donde se valida que un campo de texto este vacío:
function valida(formulario) {
return (formulario.texto.value != "");
}
<form action="" method="get" onsubmit="return valida(this)">
<input type="text" name="texto" value="" />
<input type="submit" value="enviar si hay texto" />
</form>
Con el método get se puede ver los parámetros del form en la URL pero vale cualquier método...
La función de validación y el evento deben tener return lo_que_sea
Saludos