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:
Pero algo debo estar haciendo mal porque no hace la búsqueda predictiva.<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>
De antemano agradezco sus comentarios, opiniones, regaños, sugerencias y lo que ustedes puedan aportar
Un gran saludo
Eduardo.