Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/02/2003, 06:40
Avatar de fjmasero
fjmasero
 
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 22 años, 3 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