Ver Mensaje Individual
  #6 (permalink)  
Antiguo 12/11/2007, 03:23
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Re: validar grupo de radiosbuttons

Cita:
Iniciado por zyon Ver Mensaje
hola caricatos, apenas pude probar tu ejemplo, pero no entiendo varias cosas de tu funcion, parece ser que se esta anidando una funcion dentro de otra y n entiendo otra cosa por hay, me la puedes explicar?
Hola:

Acabo de probar el código y tenía un par de fallicos... te paso el código corregido:

Código:
function chequearRadios() {
  function chek(f, g) {
    var vale = false;
    for (var i = 0, grupo = f[g], total = grupo.length; i < total; i ++)
      vale = (vale || grupo[i].checked);
    return vale;
  }

var vale = true;
ar = chequearRadios.arguments;
for (i = 1, formu = ar[0]; grup = ar[i], i < ar.length; i ++)
vale = (vale && chek(formu, grup));
return vale;
}
Lo del anidamiento, no es eso exactamente, es una función interna de otra función, no se usa mucho porque produce el mismo resultado que si estuviera fuera (en el caso "chek"), pero de esa forma puedes definir una función con el mismo nombre fuera, que sería "global", y la interna sólo funcionaría en su ámbito... si sólo va a usarse en esa función, ayudaría a no dispersar mucho el código.

Sobre la función en sí, se trata de poner como parámetros, el primero el propio formulario para referenciarlo internamente, y detrás la lista de campos "radio". El funcionamiento es muy sencillo, se considera en principio que va a pasar la validación, y se actualiza con la operación lógica true por cada grupo de radios que pase la validación (la función check(formulario, grupo)), entonces si un grupo no la pasa la operación será true && false = false, y como resultado, no pasa la validación...

La validación de los grupos es parecida en la teoría, pero cambiando la verificación... empezamos considerando que no hay ninguno checked (v = false), y por cada uno se hace la operación lógica OR de tal forma que si ninguuno está checked seguirá false, pero cuando uno es checked, el grupo valida.

Las operaciones lógicas no son muy difíciles de comprender.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo