Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/02/2012, 23:43
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: manejar ciclo de varios select options

buenas,
lo primero que las declaraciones de los arrays deberían estar fuera del bucle porque de lo contrario en cada ciclo se declara un nuevo array.

segundo, la referencia al formulario esta mal porque form no es una propiedad declarada de document. tengo duda de si tienes varios formularios o si es uno solo. si es uno solo, entonces no tiene sentido considerar la propiedad como un array indicando un índice variable. específicamente me refiero a esto form[a]. para obtener la referencia de un formulario hay múltiples formas como por ID o por la colección forms -nótese el plural-, entre otras. si vas a usar la colección forms, puedes indicar el nombre del formulario o el índice en caso de ser múltiples formularios.

Código:
document.forms['nombre'];
// referencia a un formulario en particular

document.forms[index];
// referencia a varios formularios, asumiendo que la variable index es un número que cambia en ciclo
tercero, la referencia al select Materia esta mal compuesta. lo que tu intentas hacer es componer el nombre del select con un número, pero en el código actual tiene un significado totalmente distinto. cuando quieras componer dinámicamente el nombre de una propiedad, debes cambiar la sintaxis de punto por corchetes y dentro de este componer un string.

Código:
object["property" + variable];
// aqui se concatena el string "property" con el valor de variable
// asumiendo que el valor es 0, el resultado es object["property0"] o lo mismo que object.property0

object.property[variable];
// notese que esto es totalmente distinto. aqui se considera la propiedad property como un posible objeto o array
// seria lo mismo que object.property.variable, en caso de ser un objeto
y cuarto, no hace falta obtener el índice del Option seleccionado para luego obtener su valor. simplemente puedes tomar el valor del select direcamente accesando la propiedad value del select.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.