Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/12/2007, 16:11
Avatar de Snd234
Snd234
 
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Re: Validar form con javascript

Para lo primero, que muestre todos los mensajes de error, tienes que quitarle los return en las validaciones y dejarla al final, de esta forma la funciona realizara todas las validaciones y mostrara los mensajes correspondientes.

Pero habria que saber si hubieron errores o no en las validaciones, entonces, si la primera validación es false (con error), guardar ese resultado en una variable resultado1, lo mismo para las demás validaciones, donde habrá una variable resultado2, resultado3, etc. que guarde los resultados.

Luego, al terminar todas las validaciones hay que evaluar esos resultado, usando return(resultado1 && resultado2); donde retornara false en general si una sola validación dio false (con error), y de esta forma no se enviara el formulario.

Para ocultar los mensajes, tendrías que agregarle la sentencia ELSE a las validaciones, realizando la acción contraria, es decir, ocultándola. Y además, asignando true a la variable de resultado de esa validación.

En resumen, tu código seria:
Código PHP:
<script type="text/javascript">
function 
validar(frm) {
    var 
resultado1 true;
    var 
resultado2 true;
    
    if (
frm.pepe.value.length 4) {
        
document.getElementById('error').style.visibility 'visible';
        
resultado1 false;    // Error
    
}
    else {
        
document.getElementById('error').style.visibility 'hidden';
        
resultado1 true;    // Sin error
    
}
   
    if (
frm.pepe2.value.length 4) {
        
document.getElementById('error2').style.visibility 'visible';
        
resultado2 false;    // Error
    
}
    else {
        
document.getElementById('error2').style.visibility 'hidden';
        
resultado3 true;    // Sin error
    
}
    return(
resultado1 && resultado2);
}
</script> 
__________________
KIBIT.cl

Última edición por Snd234; 01/12/2007 a las 16:21