Foros del Web » Programando para Internet » Javascript »

Controlar numero de checkbox k esten checked

Estas en el tema de Controlar numero de checkbox k esten checked en el foro de Javascript en Foros del Web. Hola buenas: Pues mirad tenemos el siguiente formulario: Código: <form name="login_partikularra" id="login_partikularra"> <label class="label_tartea"> <input name="zein1" type="checkbox" id="zein1" accesskey="a" tabindex="12" value="bai" /> Administrazioa</label><br /><br /> ...
  #1 (permalink)  
Antiguo 15/01/2007, 10:02
 
Fecha de Ingreso: septiembre-2006
Mensajes: 84
Antigüedad: 17 años, 7 meses
Puntos: 0
Controlar numero de checkbox k esten checked

Hola buenas:
Pues mirad tenemos el siguiente formulario:

Código:
<form name="login_partikularra" id="login_partikularra">
<label class="label_tartea">
		<input name="zein1" type="checkbox" id="zein1" accesskey="a" tabindex="12" value="bai"  />
		Administrazioa</label><br /><br />
		
		<label>
		<input name="zein2" type="checkbox" id="zein2" accesskey="a" tabindex="12" value="bai" />
		Artisautzak eta arte aplikatuak</label><br /><br />
		
		<label class="label_tartea">
		<input name="zein3" type="checkbox" id="zein3" accesskey="a" tabindex="12" value="bai" />
		Automozioa</label><br /><br />
		
		<label>
		<input name="zein4" type="checkbox" id="zein4" accesskey="a" tabindex="12" value="bai" />
		Beira eta zeramika</label><br /><br />
		
		<label class="label_tartea">
		<input name="zein5" type="checkbox" id="zein5" accesskey="a" tabindex="12" value="bai" />
		Bestelakoak</label><br /><br />
		
		<label class="label_tartea">
		<input name="zein6" type="checkbox" id="zein6" accesskey="a" tabindex="12" value="bai" />
		Ehungintza, egintza eta larrua</label><br /><br />
		
		<label>
		<input name="zein7" type="checkbox" id="zein7" accesskey="a" tabindex="12" value="bai" />
		Elektrizitatea</label><br /><br />
		
		<label>
		<input name="zein8" type="checkbox" id="zein8" accesskey="a" tabindex="12" value="bai" />
		Elikagaien industriak</label><br /><br />
		
		<label>
		<input name="zein9" type="checkbox" id="zein9" accesskey="a" tabindex="12" value="bai" />
		Enpresa sustapena</label><br /><br />
		
		<label>
		<input name="zein10" type="checkbox" id="zein10" accesskey="a" tabindex="12" value="bai" />
		Eraikuntza eta obra zibila</label><br /><br />
		
		<label>
		<input name="zein11" type="checkbox" id="zein11" accesskey="a" tabindex="12" value="bai" />
		Fabrikazio mekanikoa</label><br /><br />
		
		<label>
		<input name="zein12" type="checkbox" id="zein12" accesskey="a" tabindex="12" value="bai" />
		Gizarte-kultura-aisialdia</label><br /><br />
		
		<label>
		<input name="zein13" type="checkbox" id="zein13" accesskey="a" tabindex="12" value="bai" />
		Gorputz eta kirol jarduerak</label><br /><br />
		
		</div>
		
		<div id="M_checkbox_eskubi">
		
		<label>
		<input name="zein16" type="checkbox" id="zein16" accesskey="a" tabindex="12" value="bai" />
		Grafikagintza</label><br /><br />
		
		<label>
		<input name="zein17" type="checkbox" id="zein17" accesskey="a" tabindex="12" value="bai" />
		Informatika</label><br /><br />
		
		<label>
		<input name="zein18" type="checkbox" id="zein18" accesskey="a" tabindex="12" value="bai" />
		Itsaso-arrantz jarduerak</label><br /><br />
		
		<label>
		<input name="zein19" type="checkbox" id="zein19" accesskey="a" tabindex="12" value="bai" />
		Kirolak</label><br /><br />
		
		<label>
		<input name="zein20" type="checkbox" id="zein20" accesskey="a" tabindex="12" value="bai" /> 
		Komunikazioa, imajina eta soinua</label><br /><br />
		
		<label>
		<input name="zein21" type="checkbox" id="zein21" accesskey="a" tabindex="12" value="bai" />
		Lurganadutza jarduerak</label><br /><br />
		
		<label>
		<input name="zein22" type="checkbox" id="zein22" accesskey="a" tabindex="12" value="bai" /> 
		Mantenu eta ekoizpen zerbitzuak</label><br /><br />
		
		<label>
		<input name="zein23" type="checkbox" id="zein23" accesskey="a" tabindex="12" value="bai" />
		Merkataritza</label><br /><br />
		
		<label>
		<input name="zein24" type="checkbox" id="zein24" accesskey="a" tabindex="12" value="bai" />
		Osasuna</label><br /><br />
		
		<label>
		<input name="zein25" type="checkbox" id="zein25" accesskey="a" tabindex="12" value="bai" />
		Ostalaritza eta turismoa</label><br /><br />
		
		<label>
		<input name="zein26" type="checkbox" id="zein26" accesskey="a" tabindex="12" value="bai" />
		Prestakuntza eta hezkuntza</label><br /><br />
				
		<label>
		<input name="zein27" type="checkbox" id="zein27" accesskey="a" tabindex="12" value="bai" />
		Zura eta altzaria</label><br /><br />
		
		<label>
		<input name="zein28" type="checkbox" id="zein28" accesskey="a" tabindex="12" value="bai" />
		Zerbitzuak eta norbere irudia</label><br /><br />
	
		</div>
		<div id="M_zatitu"></div>
					
		<input name="erabiltzailea" type="text" id="erabiltzailea" value="<? echo $_SESSION["erabiltzailea_errejistro"]?>" /> 
		<input name="pasahitza" type="text" id="pasahitza" value="<? echo $_SESSION["pasahitza_errejistro"]?>" />
		<input name="mota" type="text" id="mota" value="<? echo $_SESSION["mota_errejistro"]?>" />
		 <input type="hidden" name="bidalia" id="bidalia" value="bai" />
		<div id="M_botoiak_erdiratu1">
		<input name="Bidalia" type="button" class="boton" accesskey="e" tabindex="17"  value="Bidali" onclick="balidatu_login_partikularra()"  />
	<input name="Restablecer" type="reset" class="boton" id="Restablecer" accesskey="r" tabindex="18" value="Berrabiazi" />
	</div>
	</form>
Como bien se aprecia en los name y en los id`s hemos puesto el valor del zein1 hasta el zein28, todo lo demas, como kien dice esta de sobra, poero bueno, os he puesto todo el form.
Despues lo k hemos hecho ha sido validar todo el formulario, y todas las validaciones escepto una van bien, y esa misma es la k keremos arreglar.
La validacion consiste en, keremos controlar la cantidad de checkbox k se han seleccionado, es decir no nos interesa k un usuario pueda seleccionar mas de 5 opciones, para ello hemos utilizado la siguiente validacion:

Código:
 seleccionados=0;
	 i=1;

	 while (i<=28)
	 {
		if (document.login_partikularra.zein[i].checked==true)
		{			
			seleccionados=seleccionados+1;	
		}
		i=i+1
	}
	
	if (seleccionados>5)
	{
		window.alert("Gehienez bost arlo dituzu aukeratzea")
	}
	else
	{
		enviar_formulario()				
	}
y el error k nos da es el siguiente:'document.login_partikularra.zein' es nulo o nos es un objeto.
Por favor llevamos todo el dia con este problema y no entendemos el pork, con lo cual si alguien nos puede ayudar...Please!
Gracias de antemano y SALU2
  #2 (permalink)  
Antiguo 15/01/2007, 10:07
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Controlar numero de checkbox k esten checked

Que tal José.

El error que te marca es porque quieres acceder a un elemento ( del arreglo ) que no existe ( o es nulo ).

Los arreglos en Javascript son como los de java, el primer elemento tiene indice cero.

Por lo tanto cambiando la línea 2 del código que muestras, por lo siguiente, seguramente todo estará bien.

i=0;

saludos y suerte!!
  #3 (permalink)  
Antiguo 16/01/2007, 05:13
 
Fecha de Ingreso: septiembre-2006
Mensajes: 84
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Controlar numero de checkbox k esten checked

Muchas gracias de antemano por tu respuesta, pero esa misma correcion ya la habiamos probado anteriormente y de todos modos no hemos logrado k funcione la aplicacion.
La cosa es k entra en el while una sola vez, por k hemos puesto un alert en el mismo posteriomente kedando de esta manera:

Código:
 seleccionados=0;
	 i=0;

	 while (i<27)
	 {
		alert ([i]);
		if (document.login_partikularra.zein[i].checked==true)
		{			
			seleccionados=seleccionados+1;	
			alert (zein[i])
		}
		i=i+1
	}
	
	if (seleccionados>5)
	{
		window.alert("Gehienez bost arlo dituzu aukeratzea")
	}
	else
	{
		partikularra_bidali()				
	}
La cosa es k el alert solamente saca un 0 y despues ya no aparecen mas numeros, de esta manera se supone k el while se corta o algo parecido, cosa k no entendemos por k. Si k hemos comprobado k kitando el

Código:
if (document.login_partikularra.zein[i].checked==true)
		{			
			seleccionados=seleccionados+1;	
			alert (zein[i])
		}
en while funciona perfectamente, pero nuestra pregunta es: Por que??
Venga haber si nos ayudais con esto, por favor.Que estamos haciendo mal?
SALU2
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 09:12.