Hola tengo una funcion para generar un select multiple, para rellenarlo no tengo problema, el problema me surge al indicar cuales son los valores que deben salir marcados:
Defino el SELECT:
Código:
var lst = document.getElementById(NombreLista);
lst.disabled = true;
lst.options[0] = new Option("Todas",0);
var aOptionPairs = strOptions.split('|');
for( var i = 0; i < aOptionPairs.length; i++ ){
if (aOptionPairs[i].indexOf('~') != -1) {
var aOptions = aOptionPairs[i].split('~');
lst.options[i+1] = new Option(aOptions[1], aOptions[0]);
}
}
Defino sus caracteristicas:
Código:
lst.multiple = true;
isLoaded[NombreLista] = true;
lst.disabled = !boolEnabled;
lst.onchange = eval( NombreLista + "_onChange" );
selectOption( NombreLista, ID );
Defino la funcion selectOption:
Código:
function selectOption( NombreLista, optionVal ){
// set list selection to option based on value
if (optionVal == "") optionVal = "0"; //Si no se mandan valores se pone el de por defecto marcado
var lst = document.getElementById(NombreLista); //Selecciono la lista a rellenar
var VALORES = optionVal.split(","); //Pongo en una matriz los valores pasados
if (VALORES.length >= 1){
for (var j=0;j<VALORES.length;j++){
for( var i = 0; i< lst.options.length; i++ ){
if( lst.options[i].value == VALORES[j] ){
lst.selectedIndex = i;
curOption[NombreLista] = VALORES[j];
}
}
}
}else {
selectOption( NombreLista, VALORES[0] );
}
}