Hola a todos los expertos:
Antes que nada les envío un saludo y les comento que he estado buscando un script para poder hacer las veces de texto predictivo en un input text. Es decir, una vez que se carga una consulta a la BD en un select, al ir tecleando los caracteres, el script tiene que ir seleccionando las opciones más cercanas a la búsqueda.
Ya probé este script
Código:
<script language="JavaScript1.2">
var digitos=10 //cantidad de digitos buscados
var puntero=0
var buffer=new Array(digitos) //declaración del array Buffer
var cadena=""
function buscar_op(obj,objfoco){
var letra = String.fromCharCode(event.keyCode)
if(puntero >= digitos){
cadena="";
puntero=0;
}
//si se presiona la tecla ENTER, borro el array de teclas presionadas y salto a otro objeto...
if (event.keyCode == 13){
borrar_buffer();
if(objfoco!=0) objfoco.focus(); //evita foco a otro objeto si objfoco=0
}
//sino busco la cadena tipeada dentro del combo...
else{
buffer[puntero]=letra;
//guardo en la posicion puntero la letra tipeada
cadena=cadena+buffer[puntero]; //armo una cadena con los datos que van ingresando al array
puntero++;
//barro todas las opciones que contiene el combo y las comparo la cadena...
for (var opcombo=0;opcombo < obj.length;opcombo++){
if(obj[opcombo].text.substr(0,puntero).toLowerCase()==cadena.toLowerCase()){
obj.selectedIndex=opcombo;
}
}
}
event.returnValue = false; //invalida la acción de pulsado de tecla para evitar busqueda del primer caracter
}
function borrar_buffer(){
//inicializa la cadena buscada
cadena="";
puntero=0;
}
</script>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="544" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="89" height="29"></td>
<td width="114"></td>
<td width="26"></td>
<td width="315"></td>
</tr>
<tr>
<td height="19"></td>
<td valign="top">
<select name="combo1" onKeypress=buscar_op(this,text2) onblur=borrar_buffer() onclick=borrar_buffer()>
<option>Argentina</option>
<option>Australia</option>
<option>Bolivia</option>
<option>Brasil</option>
<option>Canada</option>
<option>Colombia</option>
<option>Dinamarca</option>
<option>Estados Unidos</option>
<option>Estonia</option>
<option>Austria</option>
<option>Bulgaria</option>
<option>Chile</option>
<option>España</option>
<option>China</option>
<option>Costa Rica</option>
<option>Croacia</option>
<option>Ecuador</option>
</select>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td height="18"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="28"></td>
<td colspan="2" valign="top">
<input type="text" name="text2">
</td>
<td></td>
</tr>
<tr>
<td height="58"></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</body>
</html>
Pero algo debo estar haciendo mal porque no hace la búsqueda predictiva.
De antemano agradezco sus comentarios, opiniones, regaños, sugerencias y lo que ustedes puedan aportar
Un gran saludo
Eduardo.