Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/11/2002, 13:39
Avatar de Beakdan
Beakdan
 
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 23 años
Puntos: 7
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.