listbox editable

17/07/2003 - 14:50 por willy | Informe spam
Como puedo lograr que a medida que escriba en un listbox, este vaya buscando
el registro.
Es decir si escribo "d" y luego "a", al desplegar la lista me muestre los
registros ue empiecen con "da".

Preguntas similare

Leer las respuestas

#1 Oscar Moreno
18/07/2003 - 08:22 | Informe spam
Es una buena idea la que has tenido que sin duda usaré en
lo próximo que haga.

Como cuando escribes una letra, te selecciona el primer
registro qu empiece con esa letra. Con
ListBox.selectedIndex tendrás la posición de dicho
registro. Cuando pulsen otra, itera en el ListBox desde
esa posición hacia adelante hasta encontrar el primer
registro con esas dos letras.

Puedes crear un nuevo atributo en el ListBox que te
almacene esas letras que vas pulsando (utiliza onkeyUp
para capturar las teclas pulsadas).

Si no tienes IE 6 no podrás añadir un nuevo atributo con
el método createAttribute, tendrás que hacerlo
directamente en el código:

<select name="ListBox" letrasSelect="">
<option value=""></option>

</select>

Un saludo.


Como puedo lograr que a medida que escriba en un listbox,


este vaya buscando
el registro.
Es decir si escribo "d" y luego "a", al desplegar la


lista me muestre los
registros ue empiecen con "da".


.

Respuesta Responder a este mensaje
#2 Nicolás Ghezzi
18/07/2003 - 15:12 | Informe spam
<input type="text" name="txtEmpresa" id="txtEmpresa"
onkeyup="javascript:Set_PositionCombo('slc_empresa', this);"
onchange="javascript:Set_PositionCombo('slc_empresa', this);" size="25">

//--

function Set_PositionCombo(objCombo, strItem){
var strTexto = strItem.value;
var txtCombo, myCombo;
if(strTexto.length!=0){
if(document.all){
myCombo = document.frmLlamado.item(objCombo);
//document.frmLlamado.item(objCombo).multiple=true;
}else{
myCombo = document.getElementById(objCombo)
//document.getElementById(objCombo).multiple=true;
}
myCombo.multiple=true;
for(i=0;i<myCombo.length;i++){
txtCombo = myCombo.item(i).text;
txtCombo = txtCombo.toLowerCase( );
myCombo.item(i).selected=false;
if(strTexto==txtCombo.substr(0,strTexto.length)){
myCombo.item(i).selected=true;
myCombo.multiple=false;
return;
}
}
}
}
//--


Y esto suponiendo que se tiene en el html un combo con empresas que se llama
slc_empresa.
Espero que les sirva y se aceptan criticas "Constructivas".

Saludos, Nico.



"Miguel Gonzalez" wrote in message
news:
¿No se podría utilizar el "infrautilizado" atributo "label" para lo que
propones Oscar?

...es que me resisto a enfocar las soluciones sólo para un navegador
determinado.

Aparte, me parece una idea excelente para un script!

Saludos!!!
Miguel


"Oscar Moreno" escribió en el mensaje
news:060201c34cf4$faab08f0$
Es una buena idea la que has tenido que sin duda usaré en
lo próximo que haga.

Como cuando escribes una letra, te selecciona el primer
registro qu empiece con esa letra. Con
ListBox.selectedIndex tendrás la posición de dicho
registro. Cuando pulsen otra, itera en el ListBox desde
esa posición hacia adelante hasta encontrar el primer
registro con esas dos letras.

Puedes crear un nuevo atributo en el ListBox que te
almacene esas letras que vas pulsando (utiliza onkeyUp
para capturar las teclas pulsadas).

Si no tienes IE 6 no podrás añadir un nuevo atributo con
el método createAttribute, tendrás que hacerlo
directamente en el código:

<select name="ListBox" letrasSelect="">
<option value=""></option>

</select>

Un saludo.


>Como puedo lograr que a medida que escriba en un listbox,
este vaya buscando
>el registro.
>Es decir si escribo "d" y luego "a", al desplegar la
lista me muestre los
>registros ue empiecen con "da".
>
>
>.
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida