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=0; k < inputs.length-1; k++)
{
inputs[k].onblur = function()
{
for (var k=0; k<inputs.length;k++)
{
if (inputs[k] == document.getElementById('p2'))
{
var pass1 = document.getElementById('p1');
var pass2 = document.getElementById('p2');
pass2.addEventListener('onblur', checkpass(pass1, pass2), 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.