Yo sí me inclinaría a hacerlo con JavaScript porque, al final, no hay por qué pedirle al servidor cosas que se pueden solucionar en el mismo cliente.
Lo que yo haría es una función de JavaScript que se active con el onClick (tal como has hecho tú)... Si encuentra un campo vacío o que no sea válido, muestra un alert().. pero si todo está bien, hace el submit....
Pregunta detalles de esto en el foro de JavaScript...
Saludos