+1000 de acuerdo con @caricatos, recuerda que la validación en el cliente (sea con javascript o con HTML5)
es opcional
la ventaja más significativa es ahorrarle al servidor las peticiones y validaciones por cada error, más sin embargo aún debes
obligatoriamente validar en el servidor, porque no solo tus clientes pueden tener el js inactivo, sino que un malintencionado puede "duplicar" el form y enviarlo sin validación, cosa que solamente puedes controlar desde el servidor, y más aún frente a atraques
CSRF