2013-07-10 4 views
0

У меня есть проблема, когда я пытаюсь проверить поля, вводя имя (например), но правильно введя пароль с количеством символов менее 8 символов. Я удалил поле «имя», то же самое происходит когда я ввожу пароль и пытаюсь поместить пустым поле «Имя». Я показываю предупреждения, но я очистил поля, которые уже были проверены. это будет?проблемы с проверкой js

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
     <title>Ejercicio 3 v4</title> 
     <script type ="text/javascript" src="codigo4.js"> </script> 
    </head> 
    <body> 
    <form id="formulario" action="#" method="post"> 
     <label for="nombre">Usuario:</label>  
     <input name="nombre" id="nombre" type="text" /> 
     <br></br> 
     <label for="clave">Password:</label>  
     <input name="clave" id="clave" type="password" /> 
     <br></br> 
     <label for="reclave">Reingrese Password:</label>  
     <input name="reclave" id="reclave" type="password" /> 
     <br></br> 
     <input name="boton" id="boton" type="submit" onclick="validar()" value="Enviar" /> 
    </form> 
    </body> 
</html> 

codigo4.js

function validar(){ 
    var usuario = document.getElementById("nombre").value; 
    var pass = document.getElementById("clave").value; 
    var repass= document.getElementById("reclave").value; 

    if (usuario =="") 
    { 
     alert("debe poner un nombre"); 
     return false; 
    } 
    else if(usuario.length < 2) 
    { 
     alert("nombre debe tener mas de 2 caracteres"); 
     return false; 
    } 
    else if(pass =="") 
    { 
     alert("debe poner un password"); 
     return false; 
    } 
    else if (pass.length < 8) 
    { 
    alert("clave debe tener mas de 8 caracteres"); 
    return false; 
    } 
    else if (repass.length < 8) 
    { 
    alert("clave debe tener mas de 8 caracteres"); 
    return false; 
    } 
    else if (pass != repass) 
    { 
    alert("las contrase��as no coinciden"); 
    return false; 
    } 

alert("todos los campos son validos"); 
return true; 
} 

П.Д.: jsfiddle не могу принять мой код

+0

Почему он не может * принять * ваш код? – gustavodidomenico

ответ

1

Вам нужно добавить return к атрибуту onclick, так что обработчик щелчка будет вернуть то, что проверка функция возвращает.

<input name="boton" id="boton" type="submit" onclick="return validar();" value="Enviar" /> 

В противном случае, вы не вернете false при сбое проверки и отправки формы.

+0

+1, и я бы использовал событие 'onsubmit' вместо события нажатия кнопки. – ocanal

+0

Благодарим вас за помощь – user1851950

Смежные вопросы