Foros del Web » Programando para Internet » Javascript »

Validar Checkbox

Estas en el tema de Validar Checkbox en el foro de Javascript en Foros del Web. Hola Necesito validar un número de check box que tienen el mismo nombre para que al menos uno sea chequeado, pero no se debe utilizar ...
  #1 (permalink)  
Antiguo 13/03/2007, 16:56
 
Fecha de Ingreso: marzo-2007
Mensajes: 69
Antigüedad: 17 años, 1 mes
Puntos: 0
Validar Checkbox

Hola

Necesito validar un número de check box que tienen el mismo nombre para que al menos uno sea chequeado, pero no se debe utilizar el nombre de los chexkbox porque tienen incluido esto "[]", con el objetivo de recuperar los datos posteriormente con php.

Gracias.
  #2 (permalink)  
Antiguo 14/03/2007, 01:56
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Validar Checkbox

Hola fremeto

A ver si este otro mensaje te ayuda:

http://www.forosdelweb.com/f13/contar-checkbox-selecionados-431687/

Saludos,
  #3 (permalink)  
Antiguo 14/03/2007, 02:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Validar Checkbox

Hola:

Con los nombres terminados en "[]", simplemente puedes usar la cadena del nombre (corchetes incluídos) a la vez entrecorchetada...

Código:
<html>
<head>
<title>
Prueba
</title>
<script type="text/javascript">
function validar(f, campo) {
 var valida = false;
 for (var i = 0, total = f[campo].length; i < total; i ++)
  valida = valida || f[campo][i].checked;
 if (!valida) alert('debe seleccionar al menos un checkbox');
 return valida;
}
</script>
</head>
<body >
<form name="prueba" action="javascript: alert('validación Ok...')" onsubmit="return validar(this, 'muchos[]')" method="get" enctype="text/plain" >
<input type="checkbox" name="muchos[]" />
<input type="checkbox" name="muchos[]" />
<input type="checkbox" name="muchos[]" />
<input type="checkbox" name="muchos[]" />
<input type="checkbox" name="muchos[]" />
<input type="checkbox" name="muchos[]" />
<input type="checkbox" name="muchos[]" />
<button type="submit" >chequear y enviar</button>
</form>
</body>
</html>
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 14/03/2007, 09:29
 
Fecha de Ingreso: marzo-2007
Mensajes: 69
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Validar Checkbox

La línea "valida = valida || f[campo][i].checked;", funciona como un condicional? que significa?

Gracias
  #5 (permalink)  
Antiguo 14/03/2007, 10:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Validar Checkbox

Hola:

Te estaba respondiendo y se me bloqueó el ordenador... así que voy a ser un poco escueto...

valida es una variable inicializada a false, y con el bucle que recorre todos los elementos con el nombre que se pasa como parámetro, se actualiza haciendo una operación Ó lógico (OR -> ||) con el propio valor y el estado del radio que se consulta... con que haya uno "checked", ese valor (true/checked) se mantiene a lo largo del bucle.

Más que un condicional, es un acumulador lógico... no se me ocurre otro nombre.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 18/03/2007, 04:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 69
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Validar Checkbox

Hola, gracias po la explicacion.

Todo estaba funcionando bien, pero ahora estuve haciendo otra página y decidí incuir el mismo código para validar los checkbox los cuales son generados por código php, es posible que solo haya un solo checkbox para marcar, he ahi el problema, porque cuando hay solo un checkbox asi este chequeado sale el mensaje "debe seleccionar al menos uno"

Como solucionar esto?

Gracias de antemano
  #7 (permalink)  
Antiguo 18/03/2007, 05:31
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Validar Checkbox

Hola:

Prueba añadiendo un control sobre el campo length:

function validar(f, campo) {
var valida = false;
if (f[campo].length == undefined) valida = f[campo].checked
else
for (var i = 0, total = f[campo].length; i < total; i ++)
valida = valida || f[campo][i].checked;
if (!valida) alert('debe seleccionar al menos un checkbox');
return valida;
}

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

Última edición por caricatos; 18/03/2007 a las 05:32 Razón: Se me coló una alerta
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:51.