Hola chic@s me he aquí con un problemita con los eventos.
Voy a tratar de explicarme lo mejor posible: tengo un campo input en el cual al escribir mas de dos letras se llena debajo un div con palabras q comiencen con esas letras escritas (tipo suggest de Gmail). En ese div se puede "navegar" entre las palabras arrojadas y seleccionar una haciendole clic y que esa palabra se ponga en el campo input que mencioné antes. Hasta ahí todo perfecto, el problema viene cuando intento ocultar ese div una vez que se selecciona una palabra o cuando se hace clic fuera del div.
Se me ocurrió poner en el input un evento onBlur que oculte el div cuando se quita el foco de ese input, el problema es que cada elemento de la lista que compone ese div (las palabras sugeridas) tienen en si mismas un evento onClick para que cuando las cliqueen se llene el input con la palabra que corresponda. Entonces al cliquearlas el div efectivamente se oculta, pero nunca se me rellena el input.
A continuación pongo pedazos de código para intentar darme a entender mejor:
Código:
<table border="1" width="400" style="border-style:none;">
<tr>
<td id="fila_2" width="50%" class="punteado">
<div id="contenedor">
<input onBlur="document.getElementById('lista').style.display='none'" onKeyUp="rellenaCampo()" type="text" id="input_2" class="ingreso" />
<div id="lista"></div>
</div>
</td>
</tr>
</table>
En ese código tengo declarado el input y el div. Por medio de ajax al escribir mas de 2 letras hago aparecer en ese div el listado de palabras del cual hablé con el siguiente evento (cada una de las palabras lo contiene):
Código:
onClick="document.getElementById('input_2').value='xxxxxx'"
El tema, como mencione antes, es que al hacer clic el div si se oculta, pero el input no se llena con nada. Si le saco el onBlur al input se llena perfectamente, pero la lista queda eternamente en pantalla, con lo que llego a la conclusión de que los eventos se me superponen (?).
Estaré sumamente agradecido a su ayuda, y no duden en avisarme si no se entiende nada lo que expliqué.
Se les agradece de antemano. Saludos.