Hola:
No creo que poner un botón submit disabled sea una buena solución, porque el formulario pasa a ser no-accesible.
Las buenas validaciones se hacen 2 veces, y la más importante en el server, aunque complementarla con javascript es mejor.
Un tutor sobre formularios:
El abc de los formularios.
Resumiendo, la estructura debería ser:
<form onsubmit="return validar(this)" ...
Saludos