Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2011, 16:30
tomirammstein
 
Fecha de Ingreso: septiembre-2011
Mensajes: 52
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Problema con validacion de formulario JS

Hola a todos; he tenido un problema, el punto es que estoy validando un formulario con JS.
Pero, ¿cual es el problema?:
Si no se introduce al menos 3 letras en el nick, devuelve falso y no deja accionar el submit. Luego, los campos contraseña no pueden estar ni vacíos y deben coincidir.
Pero suponganse que en el primer campo introduzco mal en nick, y en los campos contraseña las dejo en blanco, solo salta el error del nick; el error de los campos contraseña solo saltan si corrijo en nick, y no debe ser así, deben saltar todos juntos.
¿Alguien me puede dar una mano?, le estaría muy agradecido.



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<script language="javascript">
function validarCampos(frm){
//Si el campo nick tiene menos de 3 letras devuelve FALSE
if(frm.nick.value.length < 3){
document.getElementById('errorNick').style.visibil ity='visible';
document.getElementById('errorNick').style.display ='block';
return false;
}
if(frm.contraseña.value == ""){
document.getElementById('contraseñasVacias').style .visibility='visible';
document.getElementById('contraseñasVacias').style .display='block';
document.getElementById('contraseña').style.border ='1px solid red';
document.getElementById('contraseñaR').style.borde r='1px solid red';
return false;
}

//Si el campo de contraseña 1 es distinto al campo de contraseña 2 devuelve FALSE
if(frm.contraseña.value != frm.contraseñaR.value){
document.getElementById('errorContR').style.visibi lity='visible';
document.getElementById('errorContR').style.displa y='block';
return false;
}

return true;
}
</script>
<form name="frm" id="frm" onsubmit="return validarCampos(this)">
nick: <input type="text" id="nick" name="nick" /><br />
<p id="errorNick" style="display:none; visibility:hidden; color: red;">Este campo debe constar como mínimo de 3 letras</p>
contraseña: <input type="password" id="contraseña" name="contraseña"/><br />
Repita su contraseña: <input type="password" id="contraseñaR" name="contraseñaR"/><br />
<p id="errorContR" style="display:none; visibility:hidden; color: red;">Las contraseñas deben de coincidir</p><p id="contraseñasVacias" style="display:none; visibility:hidden; color:red;"> Debe de introducir su contraseña </p>
email: <input type="text" name="email"/><br />
<input type="submit" value="Ok" />
</form>