Postado originalmente por
edmafer
Só para complementar o Roney...
Eu quando desenvolvia web fazia as duas validações. Primeiro em JavaScript:
Campos vazios, data, cpf e etc... tudo o que não precisava ser feito com busca de dados no banco.
Pelo motivos já expostos, é muito mais rápido.
Mas....
O JavaScript tem um problema. Você não pode confiar que ele vai garantir a veracidade dos seus dados, pois alguém mal intencionado, ou perdido no meio das teclas, pode estar com o javascript desativado, e desta forma vai inserir os valores de forma incorreta, isto se inserir.
Então a única solução que eu pensei foi a mais trabalhosa, mas a mais segura: Faça os dois.