Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/09/2011, 06:16
Avatar de Raziel_Ravenheart
Raziel_Ravenheart
 
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Autocompletar Ajax y PHP - Problema

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 original
  1. window.onload = function () {
  2.     document.getElementById("alojar").onfocus = funcion;
  3.     document.getElementById("alojar").onblur = funcion1;
  4.     document.getElementById("alojar").onkeyup = funcion2;
  5. }
  6.  
  7.  
  8. function funcion () {
  9.     if (document.getElementById('lista2').childNodes[0] != null  && this.value != '') {
  10.         filtraLista2(this.value);
  11.         formateaLista2(this.value);
  12.         reiniciaSeleccion2();
  13.         document.getElementById('lista2').style.display='block';
  14.     }
  15. }
  16.  
  17.  
  18. function funcion1 () {
  19.     if (v2==1)  {
  20.         document.getElementById('lista2').style.display='none';
  21.     }
  22. }
  23.  
  24.  
  25. function funcion2 () {
  26.     if (navegaTeclado2(event)==1) {
  27.         clearTimeout(ultimoIdentificador2);
  28.         ultimoIdentificador2 = setTimeout ('rellenaLista2()', 500);
  29.     }
  30. }

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
  1. <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?

Última edición por Raziel_Ravenheart; 07/09/2011 a las 06:18 Razón: Retirar asignacion de manejadores de eventos