Foros del Web » Programando para Internet » Javascript »

ver si al menos un checkbox esta tildado

Estas en el tema de ver si al menos un checkbox esta tildado en el foro de Javascript en Foros del Web. Bueno Tengo un php con 12 checkbos que no estan en grupo. y estan nombrados como "c1 , c2 y siguientes. asi: <input type="checkbox" name="c1" ...
  #1 (permalink)  
Antiguo 05/09/2009, 06:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 224
Antigüedad: 15 años, 11 meses
Puntos: 4
ver si al menos un checkbox esta tildado

Bueno

Tengo un php con 12 checkbos que no estan en grupo. y estan nombrados como "c1 , c2 y siguientes.

asi:

<input type="checkbox" name="c1" value="checkbox" />

Yo quisiera que dentro de la funcion validarForm que tengo pueda poner de alguna manera la forma de que cheque que al menos que un checkbox este tildado.

Parte de la funcion que tengo de validar es asi:

function verifica(){
if(document.form1.apellido.value.length < 2){
alert("Debe ingresar un Apellido");
document.form1.apellido.focus();
return false;
}



Se puede poner dentro de esa funcion de alguna manera, la verificacion de los checkbox?

  #2 (permalink)  
Antiguo 05/09/2009, 11:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 14 años, 11 meses
Puntos: 9
Respuesta: ver si al menos un checkbox esta tildado

a ver, te contesto rapido que seguro que estas deseando una respuesta:
mi solucion seguro que se puede hacer con un for, pero eso ya lo miras tu, te contesto rapido que tengo prisa.
(esta en pseudocodigo eh?)


funcion comprobarcheckboxes(){
var ch1 = document.etElementById('ch1').value; (no recuerdo si se miraba con value pero si no investigas)
var estaActivo=0

var ch2 = document.etElementById('ch2').value;
var ch3 = document.etElementById('ch3').value;
var ch4 = document.etElementById('ch4').value;
var ch5 = document.etElementById('ch5').value;
var ch6 = document.etElementById('ch6').value;
....
y luego:
if (ch1=true){
estaActivo= estaActivo + 1
}
if (ch2=true){
estaActivo= estaActivo + 1
}
if (ch3=true){
estaActivo= estaActivo + 1
}
if (ch4=true){
estaActivo= estaActivo + 1
}
.........

y asi con todos, y por ultimo :
if (estaActivo>0){
alert('hay al menos un checkbox activo')
}
}
  #3 (permalink)  
Antiguo 05/09/2009, 12:30
 
Fecha de Ingreso: mayo-2008
Mensajes: 224
Antigüedad: 15 años, 11 meses
Puntos: 4
Respuesta: ver si al menos un checkbox esta tildado

Grande monxas !!

Te prometo que lo pruebo y te cuento como queda

Grcias !!!!
  #4 (permalink)  
Antiguo 05/09/2009, 12:59
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: ver si al menos un checkbox esta tildado

Hola

El código de monxa puede que funcione, pero es poco practico por varias razones. Prueba con este

Código javascript:
Ver original
  1. function MarcaChkBox (c) {
  2.       for (var i=0; chk = c.ckb[i]; i++)
  3.     if (chk.checked) return;
  4.     alert('Has de selecionar al menos uno de los chekbox');
  5.     return false;
  6. }

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 05/09/2009, 13:06
 
Fecha de Ingreso: julio-2008
Mensajes: 91
Antigüedad: 15 años, 9 meses
Puntos: 6
Respuesta: ver si al menos un checkbox esta tildado

Prueba esto haber que pasa y nos cuentas....

Código javascript:
Ver original
  1. function recorrerchecks()
  2.     {
  3.     c=0;
  4.     for (i=0;i<document.form1.elements.length;i++)
  5.         {
  6.         // Verificar si son de tipo checkboxs
  7.         if (document.form1.elements[i].type=="checkbox")
  8.             {
  9.                   //Verificar si estan marcados
  10.             if (document.form1.elements[i].checked)
  11.             {
  12.                               //Contador de checkbox marcados....
  13.                               c++;
  14.     }
  15.             }
  16.         }
  17.     if (c==0)
  18.         {alert ("Debe activar al menos un checkbox");}
  19.         }

Saludos...
  #6 (permalink)  
Antiguo 06/09/2009, 19:29
 
Fecha de Ingreso: mayo-2008
Mensajes: 224
Antigüedad: 15 años, 11 meses
Puntos: 4
Respuesta: ver si al menos un checkbox esta tildado

Buenisimos los codigos !!!

Les cuento de los tres adopte por usar el ultimo. Ahora tengo un tema.

La funcion que llama a verificar el formulario que esta dentro del boton submit es validar()

Y luego esta la funcion recorrercheck de raul.

Si el recorrer pruebo solo, funciona, me avisa pero me envia el formulario igual. Si trato de ponerlo dentro dentro de la funcion validar() se corta la funcion en algun lado y me deja directamente de validar todo.

Como puedo insertar la funcion para que anden las dos? yo pensaba en poner la llamada a la funcion del recorrer dentro de validar pero ahi en donde se corta.

Por ejemplo, yo lo pongo asi.

y directamente no me valida ni el nombre del campo texto.


( el codigo es largo, pongo la ultima parte que es donde agrege la llamada a la nueva funcion )

if (document.form1.numerodocTutor.value < 7){
alert("Debe ingresar un Numero de Documento Valido");
return false;
}
}
recorrerchecks();
else{
document.form1.submit();
}
}

Probe poniendo las dos funciones en el submit y si, ahi andan las dos, pero obviamente me avisa de los check que no estan tildados y el form pasa igual, porque no tiene el tope de que frene de verificar antes de enviar en la funcion de validar().

Si alguien tiene una aspirina ya tengo listo el vaso de agua.

Como siempre, millones de gracias !!
  #7 (permalink)  
Antiguo 07/09/2009, 02:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 14 años, 11 meses
Puntos: 9
Respuesta: ver si al menos un checkbox esta tildado

el problema es que no devuelve false!
para cortar el submit tienes que poner un return false como en el resto. puedes hacerlo asi:

if (document.form1.numerodocTutor.value < 7){
alert("Debe ingresar un Numero de Documento Valido");
return false;
}
}
return recorrerchecks();
else{
document.form1.submit();
}
}

y en recorrerchecks:

if (c==0)

{alert ("Debe activar al menos un checkbox");
return false
}
}


por cierto, mi primer codigo claro que daba pena, pero como vi que llevaba un tiempo sin respuesta y tenia 3 minutos antes de irme le puse algo con lo que ir tirando. un saludo!

Última edición por monxas; 07/09/2009 a las 03:34 Razón: añadir coment
  #8 (permalink)  
Antiguo 07/09/2009, 08:17
 
Fecha de Ingreso: mayo-2008
Mensajes: 224
Antigüedad: 15 años, 11 meses
Puntos: 4
Respuesta: ver si al menos un checkbox esta tildado

Hola monxas !!!

Te cuento.

Puse el codigo como me pasaste y quedaba sin hacer nada igual, me anime y lo modifique un poquito y la pegue. te muestro

Esto dentro de la funcion validar()

if (document.form1.numerodocTutor.value < 7){ // IF 4
alert("Debe ingresar un Numero de Documento Valido");
return false;
} // CIERRO IF 4
} // CIERRO IF 1
if(recorrerchecks()==false){
return false;
}
else{ //sino enviamos el formulario
document.form1.submit(); //enviamos formulario
}



y esto otro en la funcion recorrerchecks()

if (c==0){
alert ("Debe activar al menos un checkbox");
return false
}
else
{
return true
}


con eso anda


La verdad no se si es la forma correcta, como sabran estoy incursionando en javascript y encima me pidieron de gauchada un formulario complejo todo para ayer

Si no fuera por ustedes mas de uno muere en el intento.

Para todos los Foreros del ForosdelWeb gracias !!!
  #9 (permalink)  
Antiguo 07/09/2009, 17:06
 
Fecha de Ingreso: julio-2008
Mensajes: 91
Antigüedad: 15 años, 9 meses
Puntos: 6
Respuesta: ver si al menos un checkbox esta tildado

Si funciona está bien, a mi parecer no hay problema.

Ahora viendo lo que hiciste puedes unir ambas funciones de la siguiente manera:

Código javascript:
Ver original
  1. function validar()
  2.   {
  3.   // tu codigo de la funcion validar....
  4.  
  5.   //Luego mi aporte dentro de tu funcion
  6.   c=0;
  7.   for (i=0;i<document.form1.elements.length;i++)
  8.     {   // Verificar si son de tipo checkboxs
  9.          if (document.form1.elements[i].type=="checkbox")
  10.             { //Verificar si estan marcados
  11.                  if (document.form1.elements[i].checked)
  12.                     {//Contador de checkbox marcados....
  13.                       c++;
  14.                      }
  15.             }
  16.     }
  17.   if (c==0)
  18.      {
  19.       alert ("Debe activar al menos un checkbox");
  20.       return false;
  21.      }
  22.   else
  23.       {return true;}
  24.    }

Saludos....
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 01:41.