Foros del Web » Programando para Internet » Javascript »

control de checkbox

Estas en el tema de control de checkbox en el foro de Javascript en Foros del Web. Hola, tengo unos checkbox que tengo que controlar, la cuestión es que en la variable $pruebas, tengo el número de checkbox se que pueden checkear ...
  #1 (permalink)  
Antiguo 10/01/2008, 04:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 140
Antigüedad: 16 años, 5 meses
Puntos: 0
control de checkbox

Hola, tengo unos checkbox que tengo que controlar, la cuestión es que en la variable $pruebas, tengo el número de checkbox se que pueden checkear como máximo y ésto lo tengo controlado.
El valor de $pruebas puede ser 1 , 2 ó 3 . Lo que me ocurre es que cuando $pruebas es = 2, debería controlar que si me checkean sólo un checkbox al pasar al criterio siguiente me de una alerta de que tengo que checkear 2 obligatoriamente. Y no se muy bien como puedo hacerlo


<script language="javascript">
var contador=new Array(0,0,0,0,0);

function validar(check,cri,maxi){

if (check.checked==true){
contador[cri]++;

if (contador[cri]>maxi) {
alert('No puedes elegir más de '+maxi+' preguntas a la vez.');
check.checked=false;
contador[cri]--;
}
}else {
contador[cri]--;
}


}
</script>






<? $sql4="SELECT * FROM actividad WHERE criterio=$idcriterio";
$resultado4=mysql_query($sql4);
if(!$resultado4){//if7
die(mysql_error());
}else{ ?>

<? while($fila4=mysql_fetch_array($resultado4)){ //while7?>
<input type="checkbox" unchecked name="preguntas[]" value="<? echo $fila4["cod_act"];?>" id="preguntas[]" onclick="validar(this,<? echo $idcriterio; ?>, <? echo $pruebas; ?>)">
<label for="checkbox"><? echo $fila4["nom_act"]; ?></label>
<a href="mostrar.php?pregunta=<? echo $fila4["cod_act"];?>" target="_self"><img src="imagenes/preg.jpg" width="15" height="15" /></a> <? echo "<br/>";
}//while7

}//if7
  #2 (permalink)  
Antiguo 11/01/2008, 02:40
 
Fecha de Ingreso: diciembre-2007
Mensajes: 140
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: control de checkbox

Ya lo he conseguido, si a alguien le interesa, pongo el código que he usado

<script language="javascript">
var contador=new Array(0,0,0,0,0);

var d=0;//guardar los checkeados anteriores
function validar(check,cri,maxi){

if (check.checked==true){
contador[cri]++;
c=cri-1;//guardar el criterio anterior
if (maxi==2 && contador[c]==1 && c!=cri){
alert("Tienes que elegir 2 preguntas, una para cada prueba")
}

if (contador[cri]>maxi) {
alert('No puedes elegir más de '+maxi+' preguntas a la vez.');
check.checked=false;
contador[cri]--;
}



}else {
contador[cri]--;
}


}
</script>
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 08:01.