ok, probalo ahora:
Cita: <html>
<head>
<script language="javascript" type="text/javascript">
var v=1;
function rellenaCampo()
{
campo=document.getElementById("input_2");
div=document.getElementById("lista");
valor=campo.value;
if(valor.length>=2) div.style.display="block";
}
</script>
</head>
<body >
<input onBlur="if(v==1){document.getElementById('lista'). style.display='none';}" onKeyUp="rellenaCampo()" type="text" id="input_2" />
<div id="lista" >
<div id="1" onClick="v=0;document.getElementById('input_2').va lue=this.innerHTML; document.getElementById('lista').style.display='no ne'" onMouseOut="this.className='normal';v=1;" onMouseOver="this.className='resaltado';v=0;">Elemento 1</div>
<div id="2" onClick="v=0;document.getElementById('input_2').va lue=this.innerHTML; document.getElementById('lista').style.display='no ne'" onMouseOut="this.className='normal';v=1;" onMouseOver="this.className='resaltado';v=0;">Elemento 2</div>
</div>
</body>
</html>
algo que simplificaría bastante es que en lugar de utilizar div's para simular una lista, utilices un select (lista), con eso te ahorrás el tema no poder utilizar el teclado. Claro que esto es solo una sugerencia.
Espero que esta sea la solución.
saludos
pd:cuidado con los espacios en blanco que agrega el foro .