Hola.
Bueno, el validador no sabe que el formulario se envía desde una función, así que lo mínimo sería poner un action con la cadena vacía (la propia página del form), pero anulándolo con el evento de envío (onsubmit="return false") y si el botón es tipo submit, no esperes nada de una función que se aplique al evento (una práctiva mala, mala)... puedes usar boyones tipo button...
hace un rato acabo de aconsejar en otro tema, que el formulario en principio que sea accesible, y si quieres que dependa de un script, añadírselo luego, y anular el envío con el evento asociado.
Saludos