hola vani,
a ver si soy capaz de explicarlo, jejejeje.
un bucle while es infinito; solo parará si la condición dada NO se cumple. o sea, que dado este absurdo bucle:
nunca parará, hasta que se desborden los datos. supongo que hasta ahí llegas. volvemos a tu caso
Código Javascript
:
Ver originalwhile (x<formulario.micro.length && !opcion)
este bucle parará de funcionar cuando X sea mayor que la cantidad de checks (formulario.micro.lenght) y opcion sea TRUE.
Dentro del bucle cuando encuentra un check marcado
Código Javascript
:
Ver originalif (formulario.micro[x].checked)
{
opcion = true;
}
cambia opcion a true, por tanto la condición del bucle ya NO se cumple, y sale de él.
El segundo if:
Código Javascript
:
Ver originalif (!opcion)
{
alert("Tienes que seleccionar alguna opción.....");
return false;
}
solo tiene sentido si no ha marcado ningún check. el WHILE hará que opcion sea TRUE o FALSE, si no marca ninguno, opcion seguirá siendo FALSE y por tanto alertará de esta situación.
a lo mejor te lías en
!opcion mira:
Código Javascript
:
Ver originalwhile (x<formulario.micro.length && !opcion)
{...}
//esto es lo mismo
while (x<formulario.micro.length && opcion==false)
{...}
saludos.