Nizam:
Bueno, yo también uso el objeto Option cuando quiero rellenar un select, ya que es uno de los objetos más útiles en cuanto a la manipulación de estos. Pero en tu caso no funciona, porque estás especificando el texto que se mostrará, pero no el value de la opción. La sintaxis para usarlo es:
Código:
new Option(texto_a_mostrar, valor);
Cuando el value y el texto a mostrar son distintos, lo anterior es la manera correcta de usarlo.
Código:
function rellena(menu){
//Esta parte la usas para eliminar el contenido de tu select.
for (var i = pp.D1.length - 1; i > 0; i--){
pp.D1[i] = null;
}
//aquí rellenas, pero hice una pequeña modificación.
for (var j=0; j<menu.length; j++){
//Creamos un nuevo objeto Option que será asignado
//a una de las posiciones del array Options del select
//esto podría hacerse en un sólo paso, pero prefiero
//ponerlo de este modo para que el código sea más claro.
//Suponiendo que el value sea = al texto mostrado:
var tempOption = new Option(menu[j],menu[j]);
pp.D1.options[j] = tempOption;
}
pp.D1[0].selected = true;
}
Obviamente, si fueran distintos el value del text, pasaría dos arrays como argumento de la función, o un array de array's.
Pero si el texto es igual al value, suelo ahorrarme la molestia de poner este último, y tomo el valor que necesito de la siguiente forma.
Código:
valor_del_texto = pp.D1.options[pp.D1.selectedIndex].text;
Saludos. Espero que la explicación no haya sido demasiado larga. Suerte.