Foros del Web » Programando para Internet » Javascript »

Maximo numero en Array de Checkbox

Estas en el tema de Maximo numero en Array de Checkbox en el foro de Javascript en Foros del Web. Hola a todos, Necesito validar un numero maximo de checkbox seleccionados en una lista. <input name="participantesCheked[]" value="1" type="checkbox" /> <input name="participantesCheked[]" value="2" type="checkbox" /> <input ...
  #1 (permalink)  
Antiguo 06/05/2009, 23:48
 
Fecha de Ingreso: mayo-2008
Mensajes: 11
Antigüedad: 15 años, 11 meses
Puntos: 0
Maximo numero en Array de Checkbox

Hola a todos,

Necesito validar un numero maximo de checkbox seleccionados en una lista.

<input name="participantesCheked[]" value="1" type="checkbox" />
<input name="participantesCheked[]" value="2" type="checkbox" />
<input name="participantesCheked[]" value="3" type="checkbox" />
<input name="participantesCheked[]" value="4" type="checkbox" />
<input name="participantesCheked[]" value="5" type="checkbox" />

y para ello estoy usando esta funcion:

<script type="text/javascript">
function maximoCheckboxarCheckbox(nombre, maximoCheckbox){
for (var i=0; i<nombre.length; i++){
nombre[i].onclick=function(){
var num_chequeados=0;
for (var i=0; i<nombre.length; i++)
num_chequeados+=(nombre[i].checked)? 1 : 0
if (num_chequeados>maximoCheckbox){
alert("El numero máximo de elemento que pueden ser seleccionados es de "+maximoCheckbox+"");
this.checked=false;
}
}
}
}
</script>

Aqui la llamo:

<script type="text/javascript">
maximoCheckboxarCheckbox(document.forms.listaMedic os.participantesCheked[], 2);
</script>

El problema es que la funcion no me acepta como nombre para los checkbox el nombre participantesCheked[] , con los "[]"

Si solo pongo participantesCheked funciana, pero no con los corchetes [], y los necesito para poder enviar todas las selecciones en un Array

Alguna idea?

Gracias de antemano,
  #2 (permalink)  
Antiguo 06/05/2009, 23:57
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Maximo numero en Array de Checkbox

utiliza la sintaxis alterna para accesar a propiedades. esta sintaxis es como si utilizaras un array pero en lugar de usar indices (numero) utiliza el nombre de la propiedad o metodo.
Código:
maximoCheckboxarCheckbox(document.forms.listaMedicos["participantesCheked[]"], 2);
...
  #3 (permalink)  
Antiguo 07/05/2009, 00:04
 
Fecha de Ingreso: mayo-2008
Mensajes: 11
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Maximo numero en Array de Checkbox

Funcionó perfecto!!!... muchas gracias!!
  #4 (permalink)  
Antiguo 07/05/2009, 00:12
 
Fecha de Ingreso: abril-2009
Mensajes: 56
Antigüedad: 15 años
Puntos: 4
Respuesta: Maximo numero en Array de Checkbox

Código HTML:
Ver original
  1. <form id="formulario" method="post" action="#">
  2.   <input value="1" type="checkbox" />
  3.   <input value="2" type="checkbox" />
  4.   <input value="3" type="checkbox" />
  5.   <input value="4" type="checkbox" />
  6.   <input value="5" type="checkbox" />
  7. </form>

Código JavaScript:
Ver original
  1. <script type="text/javascript">
  2.   function maximoCheckboxarCheckbox(form, maximoCheckbox){
  3.   var checkSeleccinados = 0;
  4.   for(var i = 0; i < form.elements.length; i++){
  5.     if( form.elements[i].type == "checkbox"){
  6.       checkSeleccinados++
  7.     }
  8.   }
  9.   if(checkSeleccinados > maximoCheckbox){
  10.     alert('El numero máximo de elementos que pueden ser seleccionados es de "maximoCheckbox"');
  11.   }
  12. }
  13. </script>
  14.  
  15.  
  16. <script type="text/javascript">
  17.   maximoCheckboxarCheckbox(document.getElementById("formulario"), 2);
  18. </script>


Podes poner document.getElementById("formulario") si lo vas a llamar al hacer click sobre el check. En cambio si vas a verificar la cantidad de check seleccionados al enviar el formulario podes poner:

Código JavaScript:
Ver original
  1. <script type="text/javascript">
  2.   maximoCheckboxarCheckbox(this, 2);
  3. </script>
  #5 (permalink)  
Antiguo 07/05/2009, 00:12
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
Respuesta: Maximo numero en Array de Checkbox

Igual es simplificarlo demasiado pero y si haces algo así?

Código:
<html>
<head>
<script>
numero=0;
</script>
</head>
<body>
...
<input name="participantesCheked[]" value="1" onclick="numero+=(this.checked)?1:-1" type="checkbox" />
<input name="participantesCheked[]" value="2"  onclick="numero+=(this.checked)?1:-1" type="checkbox" />
<input name="participantesCheked[]" value="3"  onclick="numero+=(this.checked)?1:-1" type="checkbox" />
<input name="participantesCheked[]" value="4"  onclick="numero+=(this.checked)?1:-1" type="checkbox" />
<input name="participantesCheked[]" value="5"  onclick="numero+=(this.checked)?1:-1" type="checkbox" />
Y a la hora de hacer el submit no tienes más que ver cuánto vale la variable numero para saber si se han seleccionado menos del número máximo.

Espero haberte ayudado a enfocarlo de otra forma.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #6 (permalink)  
Antiguo 29/08/2012, 18:52
 
Fecha de Ingreso: agosto-2012
Mensajes: 16
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Maximo numero en Array de Checkbox

Podrias postear la solucion tengo exactamente el mismo problema y no puedo solucionarlo un saludo
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 04:17.