Hola, jakuam. La verdad es que está un poco enredado tu código y sin comentarios, es un poco difícil saber que quiere hacer cada línea. No digo que no se pueda leer, pero si no tuvieramos que adivinar, y pudieramos saber que hace cada línea, o por lo menos cada función y saber en que orden se ejecutan, podríamos ayudarte en tu problema.
Por ahora mi recomendación es que quites esos manejadores de eventos de la etiqueta, por que ya se ven muy abarrotados, y los cargues justo cuando termina de cargar todo el contenido de la ventana, lo que quiero decir, es que dentro de tu código javascript, hagas algo como lo siguiente:
Código Javascript
:
Ver originalwindow.onload = function () {
document.getElementById("alojar").onfocus = funcion;
document.getElementById("alojar").onblur = funcion1;
document.getElementById("alojar").onkeyup = funcion2;
}
function funcion () {
if (document.getElementById('lista2').childNodes[0] != null && this.value != '') {
filtraLista2(this.value);
formateaLista2(this.value);
reiniciaSeleccion2();
document.getElementById('lista2').style.display='block';
}
}
function funcion1 () {
if (v2==1) {
document.getElementById('lista2').style.display='none';
}
}
function funcion2 () {
if (navegaTeclado2(event)==1) {
clearTimeout(ultimoIdentificador2);
ultimoIdentificador2 = setTimeout ('rellenaLista2()', 500);
}
}
con esto hecho, el código de tu etiqueta queda aún más limpio y se verá solo lo que se necesita, es decir, quedaría así:
Código HTML:
Ver original<input name="alojar" type="text" class="form1" id="alojar" />
De esta manera el código será más entendible y si por algún motivo al revisarlo, te das cuenta del error, ya estarás un paso más cerca de crear código del modo recomendado. Y el código que provees al principio, lo hiciste tu o lo copiaste de algún lado?