Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/05/2013, 08:37
Avatar de alberthp
alberthp
 
Fecha de Ingreso: abril-2013
Mensajes: 12
Antigüedad: 11 años
Puntos: 0
Problema con onblur

Buenas,

He estado rompiéndome la cabeza para averiguar cómo hacerlo, he buscado info y al final me he rendido a la evidencia de que necesito ayuda.

Tengo un html así:

Código PHP:
<form action="index.html" method="post" id="form1" novalidate>
<
label for="nombre">Nombre </label>
<
input type="text" id="nombre" name="nombre" onfocus "this.nextSibling.setAttribute('class', ''); this.setAttribute('class','');" tittle="Minimo 5 caracteres alfanumericos sin espacios" maxlength="15" required/><span class=""></span>
<
label for="password">Contraseña</label>
<
input id="p1" name="password" type="password" pattern=".{8,}" maxlength "20" required title="Minimo 8 caracteres y al menos un numero o mayus."/><span class=""></span>
<
label for="password">Confirmar Contraseña</label>
<
input id="p2" type='password' required pattern=".{8,}"><span class=""></span>
<
label for="email">Email </label>
<
input type="email" id="email" name="email" required title="Direccion de correo completa y valida ([email protected])"/><span class=""></span>
<
button id="enviar" name="enviar" type="submit">Enviar</button>
</
form
Y la intención es que, sin tener ningún onblur en el HTML, al quitar el foco de uno de los inputs, salte el js que valide el campo correspondiente.

El js que tengo es este:

Código PHP:
window.onload = function()
{
     var 
inputs document.querySelectorAll('input');
     for (var 
k=0inputs.length-1k++)
     {
           
inputs[k].onblur = function()
       {
         for (var 
k=0k<inputs.length;k++)
             {
            if (
inputs[k] == document.getElementById('p2'))
            {
                var 
pass1 document.getElementById('p1');
                var 
pass2 document.getElementById('p2');
                     
pass2.addEventListener('onblur'checkpass(pass1pass2), false);
            }else{
                
inputs[k].addEventListener('onblur'check(inputs[k]), false);
            }
           }
        }
    } 
El problema viene que al pulsar en un campo, me comprueba TODOS los campos. Obviamente, sé que el error viene del segundo for. Pero si lo quito, me queda con el valor de k del primer for que, a su vez, si lo quito, no me hace nada.

Obviamente, sé que el error es mío, pero ni sé solucionarlo ni detectar dónde está, más allá de los dos for.

¿Alguien podría ayudarme o indicarme una manera de hacerlo sin que haya ningún "onblur" en el HTML, por favor? Gracias de antemano.