Hola,
Una opinión adicional ... la validación de información debe ser reforzada en la capa de lógica de negocios.
Ya existen muchos patrones de diseño que se encargan de este problema y que han funcionado durante mucho tiempo de forma muy eficiente, y aún las empresas mas grandes en producción de software para desarrollar aplicaciones las siguen implementando.
El patrón que ha mi me ha sido de utilidad durante mucho tiempo en todos los lenguajes de programación que he usado, es crear aplicaciones de varias capas n-Tier applications, no confundir con el patrón MVC.
El paradigma es simple, la capa de lógica de negocios se encarga de realizar todas las validaciones y acciones que representen reforzar los estándares de una compañía. Y esta debe estar completamente separada de la base de datos y de la vista, por el hecho que puede correr en un servidor o cluster completamente diferente (RPC), esto da escalabilidad y estabilidad a un proyecto. La misma lógica se puede reutilizar en aplicaciones de escritorio, web y webservices al mismo tiempo sin duplicar la lógica en cada aplicación.
La capa de lógica de negocios se encarga de validar que los datos estén correctamente ingresados y que cumplan ciertos requisitos que en algunos casos ni la base de datos tiene la capacidad de reproducir, como el caso de manejar información externa. Los datos no solo están almacenados en bases de datos, también pueden provenir de otro tipo de fuentes de información.
El hecho que Oracle permita procedimientos almacenados en Java en la base de datos u Microsoft SQL Server permita también código CLR dentro de la base de datos simplemente es para facilitar algunos procedimientos puramente de la base de datos, no para reforzar ningún tipo de lógica de negocios.
Se puede utilizar Javascript para validar información en la Vista solamente como un valor agregado, una comodidad extra para el usuario. Y reforzar la lógica de negocios en la base de datos porque algún día vas a querer cambiar el lenguaje de programación es absurdo ... ¿que pasa si quieres cambiar la base de datos? sucede exactamente el mismo problema.
Pero esta es solamente mi opinión al respecto,
Saludos,