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:
...
}