Foros del Web » Programando para Internet » Javascript »

Al menos un checkbox seleccionado

Estas en el tema de Al menos un checkbox seleccionado en el foro de Javascript en Foros del Web. Tengo un listado de check box que se arman dinamicamente segun una base de datos. Lo que necesito saber es que al hacer click en ...
  #1 (permalink)  
Antiguo 09/03/2005, 10:08
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Al menos un checkbox seleccionado

Tengo un listado de check box que se arman dinamicamente segun una base de datos. Lo que necesito saber es que al hacer click en un boton de submit chequee si hay POR LO MENOS un check box seleccionado, sino que tire un mensaje de error.
Alguien sabe como hacerlo??
__________________
:serio: :adios:
  #2 (permalink)  
Antiguo 09/03/2005, 10:25
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61

En el head:
Código PHP:
<script>
function 
validar(esto){
valido=false;
for(
a=0;a<esto.elements.length;a++){
if(
esto[a].type=="checkbox" && esto[a].checked==true){
valido=true;
break
}

}
if(!
valido){
alert("Chequee una casilla!");return false
}




</script> 
y en el form:

<form onsubmit="return validar(this)">
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 09/03/2005 a las 10:41
  #3 (permalink)  
Antiguo 09/03/2005, 10:30
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 2
Hola muy buenas, aprovechando este hilo, como se haría para que no me dejara seleccionar más de 1 checkbox, yo tambien saco los datos dinamicamente desde una base de datos.

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #4 (permalink)  
Antiguo 09/03/2005, 10:40
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
<html>
<head>
<title>Untitled</title><script>
function validar(esto){
valido=0;
for(a=0;a<esto.elements.length;a++){
if(esto[a].type=="checkbox" && esto[a].checked==true){
valido+=1;
}

}
if(valido!=1){
alert("No puede chequear más de una casilla!");
return false;
}

}


</script>
</head>

<body>
<form action ="javascript:alert('Mandandooo!!!')" name="aa323" onsubmit="return validar(this)">
<input type="checkbox" name="pedpe1"><br />
<input type="checkbox" name="pedpe2"><br />
<input type="checkbox" name="pedpe3"><br />
<input type="checkbox" name="pedpe4"><br />
<input type="checkbox" name="pedpe5"><br />

<input type="submit" name="pepe"></form>


</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 09/03/2005, 10:54
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 2
y si necesito que la validacion se haga cuando le doy al checkbox sería esto?

<input type="checkbox" name="pedpe1" onclic="validar(this)">
<input type="checkbox" name="pedpe2" onclic="validar(this)">
<input type="checkbox" name="pedpe3" onclic="validar(this)">
<input type="checkbox" name="pedpe4" onclic="validar(this)">
<input type="checkbox" name="pedpe5" onclic="validar(this)">

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #6 (permalink)  
Antiguo 09/03/2005, 11:02
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Me tira un error que elements no es un objeto....
????
__________________
:serio: :adios:
  #7 (permalink)  
Antiguo 09/03/2005, 11:22
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61

La próxima vez avisa cómo lo quieres.

Código PHP:
<html>
<
head>
<
title>Untitled</title><script>

c=0;
function 
prueba(esto){
c+=(esto.checked)?1:-1;
if(
c>1){
alert("No chequee más de uno!");
esto.checked=false;
c-=1;
}

}

</script> 
</head>

<body>
<form action ="javascript:alert('Mandandooo!!!')" name="aa323" >
<input type="checkbox" name="pedpe1" onclick="prueba(this)"><br />
<input type="checkbox" name="pedpe2" onclick="prueba(this)"><br />
<input type="checkbox" name="pedpe3" onclick="prueba(this)"><br />
<input type="checkbox" name="pedpe4" onclick="prueba(this)"><br />
<input type="checkbox" name="pedpe5" onclick="prueba(this)"><br />

<input type="submit" name="pepe"></form>


</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 09/03/2005, 11:24
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Hemiliano, lo cambié. Prueba ahora:

Código PHP:
<script>
function 
validar(esto){
valido=false;
for(
a=0;a<esto.elements.length;a++){
if(
esto[a].type=="checkbox" && esto[a].checked==true){
valido=true;
break
}

}
if(!
valido){
alert("Chequee una casilla!");return false
}

}


</script> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #9 (permalink)  
Antiguo 09/03/2005, 11:48
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 2
perdona KarlanKas se me fue el santo al cielo, gracias.

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #10 (permalink)  
Antiguo 09/03/2005, 12:02
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 2
Esto...., jeje, me vas a cortar los hue...., jeje, pero tengo un problemilla, no con el codigo que funciona perfecto sino que claro al seleccionar el checkbox, me pasa ese valor a un campo y si selecciono otro, me dice que si que ya existe otro pulsado pero me pasa el valor al campo, así que no me vale.

Lo que e pensado esque quizás lo qeu se puede hacer es decirle que si e seleccionado uno entonces que me ponga el resto de los campos como disabled y si se deselecciona entonces vuelva a estar operativos.

Y ahora la preguntilla, jeje, eso como se podría hacer?

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades

Última edición por haven; 09/03/2005 a las 12:16
  #11 (permalink)  
Antiguo 10/03/2005, 11:57
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Mmmh.. que raro, me tira esto:
Erro: 'elements' es nulo o no es un objeto.
__________________
:serio: :adios:
  #12 (permalink)  
Antiguo 10/03/2005, 12:08
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
hemiliano:Metes los checkbox dentro de un formulario?

Déjame ver el código de tu página...

haven:ponme clarito qué es lo que quiieres hacer. No te creas que me divierte mucho el hacer cosas que a la postre resultan inútiles. Por qué no lo cambias por un input tipo radio?
Código PHP:
<html>
<
head>
<
title>Untitled</title><script>

anterior=[]
function 
prueba(esto){
anterior.checked=false;
anterior=esto;
}

</script>
</head>

<body>
<form action ="javascript:alert('Mandandooo!!!')" name="aa323" >
<input type="checkbox" name="pedpe1" onclick="prueba(this)"><br />
<input type="checkbox" name="pedpe2" onclick="prueba(this)"><br />
<input type="checkbox" name="pedpe3" onclick="prueba(this)"><br />
<input type="checkbox" name="pedpe4" onclick="prueba(this)"><br />
<input type="checkbox" name="pedpe5" onclick="prueba(this)"><br />

<input type="submit" name="pepe"></form>


</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #13 (permalink)  
Antiguo 11/03/2005, 06:25
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Creo que se por que es el error.
Te comento:

Los check estan dentro de un formulario que se llama form1.
Todos los check box se llaman: prop[<?=$i?>]
donde el valor de prop[] se lo asigna una variable dentro del bucle.
Puede ser que al llamarse todos con [] ocurra algun error?. Estoy diciendo cualquier cosa me parece, ahora que lo escribo.

No te paso todo el código por que es largísimo. Pero te lo resumo acá:

Código:
<form name="form1" method="post" action="inquire_mycart.php" target="_blank" onsubmit="return validar(this.form1)">
<table>

<?										for ($i=0; $i<$cantProp; $i++){
?>
                                      <tr onMouseOver="resaltar(this)" onMouseOut="normal(this)" bgcolor="F7F7F4">
                                        <td width="4%"><input type="checkbox" name="prop[<?=$i?>]" id="prop[<?=$i?>]" value="<?=$rsProp['id']?>"></td>
                                        <td width="89%" height="25" class="texto"><b><?=$rsProp['id']?></b>&nbsp;&nbsp;&nbsp;<a href="#" onClick="javascript:opener.location.href='property.php?id=<?=$rsProp['id']?>&cmb_rental=<?=$cmb_rental?>'"><?=$rsProp['nombre']?></a></td>
                                        <td width="3%"><a href="javascript:if(confirm('¿Are you sure you want to Erease this property from Your Cart?')) document.location='mycart.php?action=del&id=<?=$rsProp['id']?>';"><img src="images/del.gif" alt="Erease this property from my cart" width="17" height="15" border="0"></a></td>
                                        <td width="4%"><a href="#" onclick="javascript:opener.location.href='inquire.php?id=<?=$rsProp['id']?>&city=<?=$rsProp['ciudad']?>&bedroom=<?=$rsProp['bedroom']?>'"><img src="images/inquiry.gif" alt="Send Inquiry for this Property" width="17" height="15" border="0"></a></td>
                                      </tr>

<? } ?>
</table>
Y LA FUNCION JAVA ES ESTA:

Código:
<script> 
function validar(esto){ 
valido=false; 
for(a=0;a<esto.elements.length;a++){ 
if(esto[a].type=="checkbox" && esto[a].checked==true){ 
valido=true; 
break 
} 

} 
if(!valido){ 
alert("Chequee una casilla!");return false 
} 

} 


</script>
No se por que pasa esto.
__________________
:serio: :adios:
  #14 (permalink)  
Antiguo 15/03/2005, 09:11
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Es medio raro lo que ocurre, no se por que lo hace.
__________________
:serio: :adios:
  #15 (permalink)  
Antiguo 15/03/2005, 09:17
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Listo, me sobraba un THIS.
THANX
__________________
:serio: :adios:
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 17:20.