L'evento di solo click equivale ad un click qualsiasi col mouse sull'elemnto. Quindi non per forza sarà il submit.
Puoi aggirare la questione in diversi modi. La migliore sarebbe quella appunto di usare Ajax per eseguire il submit finale senza ricaricare il tutto.
Se vuoi un consiglio io userei una libreria gia' fatta di validazione tipo questa http://parsleyjs.org/doc/index.html, ha un sacco di opzioni ed è ben fatta. Non ti serve aggiungere HTML o CSS custom.