Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/03/2012, 05:20
luis_vega
 
Fecha de Ingreso: marzo-2012
Ubicación: Madrid
Mensajes: 74
Antigüedad: 12 años, 1 mes
Puntos: 12
Respuesta: Convertir una constante de formulario en una variable

Como te han sugerido en el otro hilo, es mas facil (aunque no imprescindible) si al gestor del evento onChange de la lista desplegable le pasas un parametro informando que control llama a la funcion.

Código:
<select onchange="seleccionar(this);">...
Luego en la funcion simplemente usas este parametro sin preocuparte de que lista desplegable es realmente, porque ambas tienen la misma estructura (calorias-nombre). El sistema es extensible a cualquier numero de listas.

Código:
function seleccionar(objSelect) {
  var form = document.getElementById('formulario');
  var indice = form.cantidad.selectedIndex;
  var c_gramos = form.cantidad.options[indice].value;
  
  indice = objSelect.selectedIndex;
  var calorias = objSelect.options[indice].value;
  var nombre = objSelect.options[indice].text;
  
  lista.push(new Seleccion(nombre,calorias,c_gramos));
  calculate(); 
}
Lo del bucle para acceder a los elementos del formulario, puede funcionar. Pero no es buena idea porque te limita a que las listas esten todas dentro del mismo formulario y sean consecutivas (sin ningun control o campo intercalado).