Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/10/2009, 22:18
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, 8 meses
Puntos: 1485
Respuesta: Un detalle....

el error se debe a lo siguiente. cuando mas de un elemento comparte el mismo valor en el atributo name la referencia document.nombre es una coleccion de elementos. un tipo de objeto parecido a un array en el sentido en que contiene indices y cada pocision hace referencia a cada uno de los elementos. pero cuando existe un solo elemento con dicho nombre, entonces la referencia document.nombre es una referencia directa para dicho elemento y este no contiene ningun indice. mas bien, si intentas usarlo como indice cada posicion hace referencia a los elementos OPTIONs de dicho select.

para corregirlo, mi sugerencia es que en lugar usar document.nombre utilices document.getElementsByName(nombre). con dicho metodo siempre obtendras una coleccion de elementos, incluso si solamente existe un elemento. la idea es que puedas determinar la cantidad exacta de elementos existente recorriendolo con un bucle.

el otro detalle que tienes que cuidar es la forma actual que tienes para recorrer por los elementos. si por ejemplo, categoria A contiene dos select, pero categoria B contiene un select, basando el bucle de acuerdo a categoria A (como lo tienes actualmente), el codigo genera un error porque se intenta leer una posicion que no existe en categoria B. o sea, el bucle tienes que basarlo segun la cantidad de SELECTs que hay para cada categoria.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 26/10/2009 a las 06:01 Razón: error bbcode