Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/08/2011, 07:24
Avatar de freesoftwarrior
freesoftwarrior
 
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Problema con Ajax y evento onBlur

Cita:
Iniciado por Raziel_Ravenheart Ver Mensaje
En este caso, el código que utilizas en la función onblur, vas a tener que pasarlo justo a la función o librería q estés utilizando, la que te permite utilizar la simulación de autocompletar, de modo que cuando esta librería u objeto, reciba la orden necesaria se cierre, supongo que dentro de la librería debe haber eventos onclick u onkeydown/press/up, para cuando se escoje un elemento, revisa bn esa parte del código, o proveenos un link para saber como funciona y tal vez te podamos ayudar, por que sin ver esa librería, no podemos saber como funciona. Además es poco probable q el ajax sea el que te esté generando el problema aunque puede que si.

Gracias por tu respuesta. Lo que he publicado es todo lo que tengo. La página ASP que hace la búsqueda en la base de datos no tiene importancia porque en nada interfiere. El objeto ajax lo creo con otro archivo js y es claro que tampoco tiene nada que ver porque funciona bien.

El script en gethint.js es el que controla todo lo que pasa y, como publique, el evento onKeyUp es el que lanza la función showHint() que es el inicio para mostrar el listado.

En la función seleccionar() se encuentra lo necesario para, que en caso se seleccione algo, se cierre todo, y funciona.

El caso con el onBlur es que sea lo que sea que ponga ahí, si tengo el listado visible y hago click para seleccionar, lo que va a pasar es que primero, antes de que se ejecute la función seleccionar() se va a ejecutar la función que este llamada por el evento onBlur.

Ese es el problema.

El que se limpie y cierre una vez seleccionado no es problema.
El problema es que si tengo el listado visible y hago un onBlur o simplemente quito el foco del campo que uso para el autocompletar, el listado queda visible.

Una opción que he implementado "temporalmente" es que se muestre un "cerrar ventana" en el listado. Pero no es nada elegante. Necesito que al perder el foco se cierre todo como sucede cuando se selecciona un elemento.

En la página que he publicado se ve este problema.

Mil gracias por el apoyo