En caso de que tengas muchas validaciones trabajar dentro de un condicional te va a volver loco.
Lo ideal seria que cada validación solo valide lo que tiene que validar, devolviendo un error (o lanzandolo) sin mostrar ningún mensaje al usuario, ya que esa responsabilidad no le corresponde.
Un ejemplo rápido:
Código Javascript
:
Ver original// Ejecuta todas las validaciones
function validar_todo() {
var validaciones, errores, actual;
validaciones = [
validar_a,
validar_b,
validar_c,
];
errores = [];
for(var i = 0; i < validaciones.length; i++) {
// Ejecuta la validacion actual
actual = validaciones[i]();
// Si la validacion devolvio algo distinto de true,
// es que fallo
if(actual !== true) {
errores.push(actual);
}
}
if(errores.length) {
alert(errores.join("\n"));
} else {
alert('Todo ok');
}
}
// Validaciones simuladas
function validar_a() {
if(Math.random() > 0.5) {
return 'A no es valido';
}
return true;
}
function validar_b() {
if(Math.random() > 0.5) {
return 'B no es valido';
}
return true;
}
function validar_c() {
if(Math.random() > 0.5) {
return 'C no es valido';
}
return true;
}
// Ejecutamos la validacion
validar_todo();