Foros del Web » Programando para Internet » Javascript »

ver selectedindex añadido

Estas en el tema de ver selectedindex añadido en el foro de Javascript en Foros del Web. Hola: Tengo un select, que dentro de un proceso complicado y largo de explicar, se le van añadiendo options, y que al añadirlos se situan ...
  #1 (permalink)  
Antiguo 30/01/2003, 19:21
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 5 meses
Puntos: 1
De acuerdo ver selectedindex añadido

Hola:

Tengo un select, que dentro de un proceso complicado y largo de explicar, se le van añadiendo options, y que al añadirlos se situan al final.

El select tiene un size=10, y tiene mas opciones, por lo que hay scroll.

Despues lo vuelvo a ordenar alfabeticamente y lo recargo con el nuevo orden.

Cada nueva option añadida, hago que este seleccionada.

Consigo que el select recargado este ordenado con las nuevas options, y la ultima seleccionada.

Hasta aquí todo correcto, pero como hago una recarga del select, se va al inicio de este, sin seleccionar nada. Si haces scroll hacia abajo, aparece el nuevo option seleccionado.

Lo que quiero es que después de recargarlo ordenado, se situe en la option seleccionada, y no al inicio.

Espero haberme explicado.

¿Alguién sabe como hacerlo?.

Muuuuuuuuuuuchas gracias por vuestra ayuda.
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #2 (permalink)  
Antiguo 30/01/2003, 19:38
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola fjmasero.

Yo creo que con asignar la propiedad selectedIndex del objeto select es suficiente para que visualmente esté seleccionado.

Me temo que tu opción seleccionada la estás logrando manipulando los objetos option y no el select en si. Puedo estar equivocado.

Revisa la respuesta que le he dado hoy mismo a Holden. Está aqui. Contiene parte de la manipulación que necesitas.

Suerte.
  #3 (permalink)  
Antiguo 31/01/2003, 13:28
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 5 meses
Puntos: 1
Hola Kaopectate:

Lo primero, darte las gracias por responderme tan pronto.

Respecto a mi problema, no sirve el hacer que en un option determinado sea el seleccionado mediante el selectedIndex ni con el selected.

Intento explicarte un poco mejor.

Tengo un select, al que dentro de un proceso se le añaden options.

Al añadirlos, se visualizan al final de la lista existente, por lo que los reordeno alfabeticamente por el texto del option.

Para ello los guardo en un array, y esto lo ordeno.

Elimino todos los options existentes.

Añado los options segun el array.

Pues es aqui cuando el scroll se pone el inicio.

Selecciono uno de los nuevos options, pero no se visualiza si esta mas abajo de los 10 primeros options.

Pues lo que quiero es que si se visualice sin tener que hacer uso del scroll.

Espero que puedas ayudarme.

Saludos y gracias, Francisco.





Cita:
Mensaje Original por Kaopectate
Hola fjmasero.

Yo creo que con asignar la propiedad selectedIndex del objeto select es suficiente para que visualmente esté seleccionado.

Me temo que tu opción seleccionada la estás logrando manipulando los objetos option y no el select en si. Puedo estar equivocado.

Revisa la respuesta que le he dado hoy mismo a Holden. Está aqui. Contiene parte de la manipulación que necesitas.

Suerte.
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #4 (permalink)  
Antiguo 31/01/2003, 21:17
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola fjmasero.

¿podrías publicar el código?

Saludos.
  #5 (permalink)  
Antiguo 02/02/2003, 06:40
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 5 meses
Puntos: 1
Hola Kaopectate:

Como me has pedido, te envío el código de la función mediante la que añado un option, cuyo .value y .text se recibe como parámetro, a un select que también se se le pasa a la función.

El option se añade al select, pero como quiero que este aparezca ordenado alfabéticamente, lo tengo que reordenar, para lo cual tengo que hacer varias operaciones.

<script language="JavaScript">
<!--
function anyadeOption(valor,txt,lista)
{
//array q contendra los options que tenga el select lista
var arraySelect = new Array();
// var = select cuyo name se ha recibido como parametro
var desplegable = eval("document.form." + lista);
//indice para recorrido array
var i;

//Se incluye el nuevo option en el select con el texto y
//value recibidos desde alta2
desplegable.options.add(new Option(txt,valor));

/*
Se recorre el arrray que componen los option del select,
se guarda el texto y el value
de cada uno en sus arrays correspondientes, y se elimina.
*/
i = 0;
//mientras el select tenga algun elemento
while(desplegable.options.length > 0)
{
//en el array se meten objetos de tipo option con el .text
//y .value del select actual
arraySelect[i] = new Option(desplegable(0).text,desplegable(0).value)
//eliminacion del option del actual select
desplegable.remove(0);
i++;
}

//Ordenacion del array que formara el select.
//selectionSort lo ordena alfabeticamete por el .text de los option
selectionSort(arraySelect);

/*
Añadir tantas opciones como haya en el array.
Se añaden al revés para que aparezcan en el orden alfabetico
que tenia en el select original
*/
for(j=(arraySelect.length-1); j >= 0; j--)
{
//añadir los option que se recogen del array
desplegable.add(arraySelect[j], 0);
if(arraySelect[j].text == txt) //es unico
{
desplegable.selectedIndex = j; //seleccion del option añadido
/*********************************************
Pues aqui es donde tengo el "problema".
Como digo, el nuevo option se selecciona,
pero el scroll no se situa donde está este.
*********************************************/
}
}

return;
}//fin function anyadeOption
//-->
</script>

Espero que con esto puedas ayudarme.

Saludos y gracias.

__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:15.