Foros del Web » Programando para Internet » Javascript »

validacion de checkbox explicacion duda

Estas en el tema de validacion de checkbox explicacion duda en el foro de Javascript en Foros del Web. bien queria hacerles una consulta, sobre el funcionamiento de esta validacion en javascript. hay algunas partes en la cuales no entiendo bien que es lo ...
  #1 (permalink)  
Antiguo 15/08/2011, 23:59
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 9 meses
Puntos: 5
validacion de checkbox explicacion duda

bien queria hacerles una consulta, sobre el funcionamiento de esta validacion en javascript. hay algunas partes en la cuales no entiendo bien que es lo que sucede..

les escribo mi explicacion y ustedes pueden masomenos guiarme...


codigo----------------------------------------


<html>
<head>
</head>
<script>
<!--
function validar(formulario)
{

//---Fin validar sexo.
opcion = false;
x = 0;
while (x<formulario.micro.length && !opcion) {


document.write(!opcion);
if (formulario.micro[x].checked){
opcion = true;
}

x++;
}
if (!opcion){
alert("Tienes que seleccionar alguna opción.....");
return false;
}

return true;
}
//-->
</script>


codigo HTML...........................

<body>
<form onSubmit="return validar(this)">

<br />
Checkbox
<br>
<input type="checkbox" name="micro" value="mac">Macintosh
<input type="checkbox" name="micro" value="pc">PC
<br />

<input type="submit" value="Conectar">
</form>
</body>
</html>

----------------------------------------

para empezar tiene una variable "opcion"con el valor false. que es la que cambiara, para que en un momento indique si hay un valor checkeado o no...

se inicializa la variable x.

comienza un while donde ingresa al mismo si
*el valor de x no supera la longitud de la matriz micro(los checkbox)
* se mantiene el valor negado de opcion(false) que seria true--- esta parte no entiendo bien...
(no se mantiene como? hasta que no cambie el valor de la variable anterior...no entiendo...
cuando se refiere a un ' if(!opcion) ' hace referencia a que si existe esa variable...podrian explicarme esta parte)
bueno como sea esta variable negada(!opcion) devuelve true ahi puse un document.write...

dentro tiene un if. que verifica si hay uno chequeado , en caso de que si este chequeado , cambia el valor de la variable a true...
otra vez me vuelvo a encontrar con esta variable negada... (!opcion)... haber... opcion ahora tiene true...
lo que si se es que no entrara en el if... por que hay un check... en todo caso podria decir que el if (!opcion) no existe...
pero no llego a entender bien...
despues bueno , si el resto lo tengo,,, claro devuelve true, indicando que esta todo ok...
  #2 (permalink)  
Antiguo 16/08/2011, 15:32
Avatar de lordglazoon  
Fecha de Ingreso: julio-2011
Mensajes: 54
Antigüedad: 12 años, 8 meses
Puntos: 8
Respuesta: validacion de checkbox explicacion duda

no seria mas fácil usar:

document.getElementById('micro').checked == 'checked'
  #3 (permalink)  
Antiguo 17/08/2011, 00:39
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 9 meses
Puntos: 5
Respuesta: validacion de checkbox explicacion duda

bueno si... puede ser....

1) pero alguien me puede explicar que sucede aca...

while (x<formulario.micro.length && !opcion)

por que entra en el while---?

si la condicion dice que mientras . x sea menor que la longitud de la matriz y "!opcion" sea negado. osea un true... como es ?

si el option tiene false... y el option negado del mientras tiene un TRUE... por que entra??

----------------------

2)

despues bueno en otro lado mas abajo dice...

que cuando esta checkeado un checkbox. se le asigna a "opcion" el valor true.... bien despues llega al if este

if (!opcion){
alert("Tienes que seleccionar alguna opción.....");
return false;
}

al estar checkeado no entra nunca al if, pero por que...
opcion es true... como compara con el if... que tiene una variable negada... ??
el conocido "!opcion"
como me doy cuenta que no va con el IF?, ya que despues lo salta y devulve TRUE como indica en el codigo...
  #4 (permalink)  
Antiguo 17/08/2011, 02:01
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 5 meses
Puntos: 66
Respuesta: validacion de checkbox explicacion duda

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:
Código Javascript:
Ver original
  1. while(1!=0)
  2.     {
  3.         x +=1;
  4.     }
nunca parará, hasta que se desborden los datos. supongo que hasta ahí llegas. volvemos a tu caso
Código Javascript:
Ver original
  1. while (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 original
  1. if (formulario.micro[x].checked)
  2.         {
  3.             opcion = true;
  4.         }
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 original
  1. if (!opcion)
  2.     {
  3.         alert("Tienes que seleccionar alguna opción.....");
  4.         return false;
  5.     }
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 original
  1. while (x<formulario.micro.length && !opcion)
  2. {...}
  3.  
  4. //esto es lo mismo
  5. while (x<formulario.micro.length && opcion==false)
  6. {...}

saludos.

Última edición por ceSharp; 17/08/2011 a las 02:24

Etiquetas: checkbox, html, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:15.