Foros del Web » Programando para Internet » Javascript »

Limitar checkboxes con nombre idéntico

Estas en el tema de Limitar checkboxes con nombre idéntico en el foro de Javascript en Foros del Web. Buenas, conseguí un script para limitar la cantidad de checkboxes que se pueden seleccionar. Es éste: http://javascript.internet.com/forms/limit-boxes.html Lo hice "dinámico" con un poco de código ...
  #1 (permalink)  
Antiguo 30/09/2005, 11:05
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Limitar checkboxes con nombre idéntico

Buenas, conseguí un script para limitar la cantidad de checkboxes que se pueden seleccionar. Es éste: http://javascript.internet.com/forms/limit-boxes.html

Lo hice "dinámico" con un poco de código ASP puesto que no sé la cantidad de checkboxes que habrá de antemano:

Código:
function countChoices(obj) {
max = 4; // max. number allowed at a time

<%
For i = 1 to Rs.RecordCount
	Response.Write "box" & i & " = obj.form.box" & i & ".checked;  // your checkboxes here" & VbCrLf
Next
%>
//box1 = obj.form.box1.checked;  // your checkboxes here
//box2 = obj.form.box2.checked;
//box3 = obj.form.box3.checked;  // add more if necessary

<%
Response.Write "count = "
For i = 1 to Rs.RecordCount
	Response.Write "(box" & i & " ? 1 : 0)"
	If i = Rs.RecordCount Then
		Response.Write ";"
	Else
		Response.Write " + "	
	End if
Next
%>
//count = (box1 ? 1 : 0) + (box2 ? 1 : 0) + (box3 ? 1 : 0);
// If you have more checkboxes on your form
// add more  (box_ ? 1 : 0)  's separated by '+'

if (count > max) {
alert("Sólo puede elegir hasta " + max + " noticias secundarias\nDesmarque una de las 4 actualmente seleccionadas para poder marcar ésta.");
obj.checked = false;
   }
}


en el form:

<%
i = 0
While Not Rs.EOF
...
%>
<input type="checkbox" name="box<% = i + 1 %>"  id="box<% = i + 1 %>" value="1"<% If Rs("tapa") = "2" then Response.Write " checked" %> onClick="countChoices(this)">
<%
i = i + 1
...
wend
%>
Luego de las modificaciones anteriores me puse re-contento
Pero cuando llegué ésta mañana, me di cuenta que necesito SI o SI que los checkbotses tengan el mismo nombre para que al hacer el request.form("MismoNombre") me lleguen los id de registros separados por comas (MismoNombre=1,3,5,6) [edité algo aqí poque sólo pueden ser 4 y no "n" como había escrito :]

Cómo puedo hacerlo?
Si tienen por allí un enlace con algo similar para verlo, se los agradezco. Todolo que encontré fue de éste tipo (o sea, cada chkbox con su nombre particular)

Gracias
__________________
...___...

Última edición por AlZuwaga; 30/09/2005 a las 11:25
  #2 (permalink)  
Antiguo 30/09/2005, 11:24
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Mu güenas Daz

te pongo un ejemplillo simple que creo te servirá

Código:
<script type="text/javascript">
<!--
var maxi = 4;
function validarCheck(f){
	cont = 0;
	for(m=0; m<f.pepe.length; m++){
		f.pepe[m].checked?cont++ : cont = cont;
	}
	if(cont > maxi){
		alert("Sólo puede elegir hasta " + maxi + " noticias secundarias\nDesmarque una de las 4 actualmente seleccionadas para poder marcar ésta.");
		return false
	}
	
}
//-->
</script>
</head>

<body>
<form name="form1" id="form1" method="post" action="javascript:alert('me envio')" onsubmit="return validarCheck(this)">
  <input type="checkbox" name="pepe" value="checkbox" />
  <input type="checkbox" name="pepe" value="checkbox" />
  <input type="checkbox" name="pepe" value="checkbox" />
  <input type="checkbox" name="pepe" value="checkbox" />
  <input type="checkbox" name="pepe" value="checkbox" />
  <input type="submit" name="Submit" value="Enviar" />
</form>
</body>
  #3 (permalink)  
Antiguo 30/09/2005, 11:29
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Oh! Que velocidá. No se hubiese apurado tanto que acaba de llegar la pizza!
Cuando termine de comer, lo pruebo y le le informo de los éxitos :)
__________________
...___...
  #4 (permalink)  
Antiguo 30/09/2005, 11:33
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Ya veo que se me adelantó tunait (¡Hola a ambos !)

No hay problemas con usar un mismo name en los checkboxes, aunque yo suelo hacer pruebas con el método get para ver como funciona en la URL y suele repetirse el name del dato... pero a diferencia del ejemplo de Helena, yo he puesto distintos values:

<form action="prueba.html" target="_blank" method="get" name=>
<input type="checkbox" name="dato" value="1" />
<input type="checkbox" name="dato" value="2" />
<input type="checkbox" name="dato" value="3" />
<input type="checkbox" name="dato" value="4" />
<input type="checkbox" name="dato" value="5" />
<input type="checkbox" name="dato" value="6" />
<input type="submit" value="enviar" />
</form>

Y en el destino ("prueba.html") salió así:

prueba.html?dato=1&dato=2&dato=3

Recuerdo que para php suelen poner los corchetes detrás del nombre: "dato[]"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 30/09/2005, 12:04
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
Iniciado por Al Zuwaga
Cuando termine de comer, lo pruebo y le le informo de los éxitos :)
¡Buen provecho!

Cita:
Iniciado por Caricatos
Ya veo que se me adelantó tunait
¡Hola Pepe! Parece que aún mantengo la forma
  #6 (permalink)  
Antiguo 30/09/2005, 12:54
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Cita:
Iniciado por tunait
¡Buen provecho!
Gracias por los buenos provechos y por el script (que demás está decir que funcionó a la primera)

caricatos, no entendí muy bién el mensaje, pero si está relacionado con lo de usar diferentes values para cada check, efectivamente eso haré ya que cada uno será el ID del registro en cuestión (allí está la gracia )

Un saludo a ambos
__________________
...___...
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 23:48.