Foros del Web » Programando para Internet » Javascript »

ayuda con checkbox y javascript!

Estas en el tema de ayuda con checkbox y javascript! en el foro de Javascript en Foros del Web. Hola, soy muy nuevo en esto de javascript y sino pregunto esto ahora no aprendo mas jeje. La cuestion es la siguiente: Mediante php muestro ...
  #1 (permalink)  
Antiguo 31/10/2005, 23:29
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
ayuda con checkbox y javascript!

Hola, soy muy nuevo en esto de javascript y sino pregunto esto ahora no aprendo mas jeje. La cuestion es la siguiente: Mediante php muestro articulos de una bd y necesito agregar un checkbox por articulo... para practicar cree los checkbox con un FOR:

Código PHP:
<form name="form1" method="post" action="prueba2.php">
  <?
  
for($i=$i<10 $i++)
   {
      
?>
  <p> 
    <input name="check[]" type="checkbox" value= <? echo "articulo$i"?> onClick="revisa(this.form)" >
  </p>
      <?
   

  
?>
    <p>
    <input type="submit" name="Submit" value="Enviar">
  </p>
</form>
Ahora lo que necesito es que, si el usuario marca 3 de los checkbox, el resto se deshabiliten. Si hay menos de 3 marcados, quiero que todos los demas esten habilitados. Experimentando intente hacer algo con funciones, pero no me anda... hice esto:

Código:
<script languaje="javascript">
function revisa(form)

{
	z=0;
	for (j=0;j<10;j++) 
	{
    		if(form.check[j].checked == true)
		{
			z=z+1;
			if(z==3)
			{
				for (k=0;k<10;k++) 
	                        {
		                         if (form.check[k].checked == false) //deshabilito los que no estan marcados
    	                                 {
		                                  form.check[k].disabled = true;
		                         }
                                 }
			}
		}
	}
	if(z<3)
	{
		for (k=0;k<10;k++)  //habilito todos
	        {
		       form.check[k].disabled = false;
    	         }
	}
}
</script>
Seguramente me estoy equivocando en alguna novatada, pero no se como hacer que funcione ni se si lo estoy haciendo de manera correcta. Si alguien me da una mano estare muy agradecido.

Desde ya muchas gracias!

Saludos y disculpen por lo extenso del asunto.

Última edición por Fridureiks; 31/10/2005 a las 23:32 Razón: me euivoque en el titulo
  #2 (permalink)  
Antiguo 01/11/2005, 04:09
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
Esto te podría valer:

Código HTML:
<html>
<head>
<script>

function deshabilitarChecks(){
	var numMarcados=0;
	var i=0;
	var checks=document.getElementsByName("check[]");
	while (numMarcados<3 && i<checks.length){
		if(checks[i].checked){
			numMarcados++;
		}
		i++;
	}
	if (numMarcados>=3){
			for (i=0;i<checks.length;i++){
					if (!checks[i].checked){
						checks[i].disabled=true;
					}
			}
	}else{
			for (i=0;i<checks.length;i++){					
					checks[i].disabled=false;					
			}
	}
}
</script>
</head>

<body >
<form name="formulario">
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
<br>
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
<br>
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
<br>
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
<br>
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
<br>
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
<br>
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
<br>
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
<br>
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
<br>
<input type="checkbox" name="check[]"  onClick="deshabilitarChecks()">
</form>

</body>
</html> 
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 01/11/2005, 08:08
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Funciona de maravilla!!, muchisimas gracias porque ya no sabia que tocar para que funcione el otro codigo.

Lo que si, sigo sin entender por que no funciona mi codigo, acaso esto no se puede hacer?

Código:
if(form.check[j].checked == true)
		{
o es que puse algo mal en las variables y por eso no me las toma como se debe.


Muchisimas gracias nuevamente!!
  #4 (permalink)  
Antiguo 01/11/2005, 08:41
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
Sin entrar en profuncidad en tu código, podría funcionar si tus checkbox se llamaran "check" pero se llaman "check[]". Y si en tu código javascript sustituyeras check por check[]:

if(form.check[][j].checked == true)

daría error de sintaxis por eso yo he utilizado esta función:

var checks=document.getElementsByName("check[]");
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #5 (permalink)  
Antiguo 01/11/2005, 11:20
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
ahhhmmm entiendo, no les puse de nombre check porque lo necesitaba de la otra forma para poder verlos facil con php. Dudas resueltas.

Muchas gracias!!
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 06:42.