Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/11/2009, 01:51
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, 7 meses
Puntos: 1485
Respuesta: validar varios radios

ademas de lo comentado por caricatos, tienes un error de logica pero antes debes comprender un concepto. cuando mas de un elemento comparte el mismo valor en el atributo name, el DOM devuelve una coleccion de elementos. en dicho caso, la coleccion esta compuesta de todos los elementos que contiene el mismo valor. pero, cuando solo existe un elemento con dicho nombre, el DOM devuelve la referencia de este elemento. la diferencia radica en que una coleccion se maneja como un array mientras que un simple elemento es como un objeto.

aplicado a tu caso, los cinco radios tienen el mismo nombre de modo que form2.se es una coleccion. el error de algoritmo que tienes es que le estas pasando la coleccion a switch en lugar del valor que repesenta el radio seleccionado. antes de pasar el valor tienes que determinar cual de los radios esta activado. para determinarlo, recorres la coleccion con un bucle e identifica el radio seleccionado por su propiedad checked. por ejemplo,
Código:
// asumiendo que radios es la coleccion;
for(var index = 0; radios[index]; index++)if(radios[index].checked)break;
switch(radios[index].value){
...
}
lo que resulta de este ejemplo es que la variable de iteracion (index) corresponde a la posicion de la coleccion del elemento seleccionado por el usuario. luego en switch le pasas el valor de la propiedad value del elemento seleccionado.

pero no todo termina ahi. ahora considera el valor que tiene cada radio, pues no encajan correctamente con la estructura de los cases. por ejemplo, el primer radio tiene como valor cero (0) y en el switch, case 0 indica un mensaje que no corresponde a este radio.


@caricatos,
¡¡rayos!! me tomo mucho escribir lo que en pocas palabras tu escribistes. me vas a tener que enseñar redaccion eficaz y simple... creo que es porque me envuelvo mucho en los detalles.


edit @ 2:59,
otro error que tienes es de bajo nivel, o sea la sintaxis. en especifico, has escrito mal la declaracion function y case.
Código:
fuction Valida()
{
...
		cese 4:
...
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 08/11/2009 a las 01:59 Razón: mas detalles...