Foros del Web » Programando para Internet » Javascript »

Función javascript con arreglo de checkbox

Estas en el tema de Función javascript con arreglo de checkbox en el foro de Javascript en Foros del Web. Hola a todos, Quisiera saber si me pueden ayudar con esto. Tengo este código de prueba, que encontré en este mismo sitio en un post ...
  #1 (permalink)  
Antiguo 12/01/2011, 11:58
 
Fecha de Ingreso: enero-2011
Ubicación: Santiago
Mensajes: 5
Antigüedad: 8 años, 10 meses
Puntos: 0
Función javascript con arreglo de checkbox

Hola a todos,

Quisiera saber si me pueden ayudar con esto. Tengo este código de prueba, que encontré en este mismo sitio en un post antiguo:

Código HTML:
<html>
<head>

</head>
<script type="text/javascript" language="javascript">
<!--
function toggleSelect(chk)
{
if (document.getElementById(chk).checked == false)
{
document.frm1.select1.disabled = true;
}
else
{
document.getElementById("select1").disabled = false;
}

}
-->
</script>
<body>
<form name="frm1" id="frm1">
<input type="checkbox" id="chk1" name="chk1" onchange="javascript:toggleSelect(this.name);" value="1" />
<select id="select1" name="select1" disabled>
<option value="value1">option 1</option>
<option value="value2">option 2</option>
<option value="value3">option 4</option>
</select>
</form>
</body>
</html> 
Y lo que yo quiero, es hacer funcionar el script cuando el nombre del checkbox sea "chk1[]", dado que necesito agrupar distintos checkbox de varias filas con información obtenida de una base de datos.

Entonces, la idea es que finalmente, por cada fila en la cual el checkbox correspondiente sea seleccionado, se habilite un select que también es un arreglo de select, pero que solo se habilite el de la fila correspondiente.

Espero que se entienda y que me puedan ayudar con este ejemplito de prueba!!

Saludos ;)!
  #2 (permalink)  
Antiguo 12/01/2011, 13:10
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 9 años, 6 meses
Puntos: 310
Respuesta: Función javascript con arreglo de checkbox

Código Javascript:
Ver original
  1. function habil(obj){
  2.  document.getElementById(obj.id.replace('chk','select')).disabled=!obj.checked;
  3. }
Código HTML:
Ver original
  1. <input type="checkbox" id="chk1" name="chk1" onchange="habil(this);" value="1" />
  2. <select id="select1" name="select1" disabled>
  3. <option value="value1">option 1</option>
  4. <option value="value2">option 2</option>
  5. <option value="value3">option 4</option>
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 12/01/2011, 20:28
 
Fecha de Ingreso: enero-2011
Ubicación: Santiago
Mensajes: 5
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Función javascript con arreglo de checkbox

Perfecto! Muchas gracias _cronos2 por tu respuesta. Lo probé con varios arreglos de checkbox y select y funciona muy bien, solo debo agregar un ID único a cada uno, cosa que no estaba considerando (solo utilizaba el name). Muchas gracias!

Aunque me surgió otra duda, por qué sirve llenar el nombre de los input como arreglos, como por ejemplo:
Código:
<input type = 'checkbox' name='chk1[]'>
, pero no sucede lo mismo para los id? Tal vez me estoy equivocando, pero al probar el ejemplo, al declarar el id como
Código:
id='chk1[]'
, no surtió el mismo efecto que al declararlo explícitamente como
Código:
id='chk1[1]'
(de esta última manera sí funcionó).

Por qué sucede eso? Y cómo se puede hacer para que se asigne dinámicamente como el name? Estoy un poco confundida con eso...

Saludos!
  #4 (permalink)  
Antiguo 13/01/2011, 00:35
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 9 años, 6 meses
Puntos: 310
Respuesta: Función javascript con arreglo de checkbox

Los arreglos se usan para enviar al servidor un array con esos valores, pero no tiene sentido hacer arreglos con las id porque lo que se envía al servidor son los name.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 13/01/2011, 01:09
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.596
Antigüedad: 17 años, 8 meses
Puntos: 1277
Respuesta: Función javascript con arreglo de checkbox

Hola:

Si son varios checks y tienen que llevar el mismo nombre, lo que tienes es un array y como tal debe indexarse. Los id's no pueden duplicarse, pero los atributos name sí, así que desde javascript puedes acceder por sus respectivos índices:

document.forms.el_form["check[]"][0]
...
document.forms.el_form["check[]"][i]

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 13/01/2011, 06:46
 
Fecha de Ingreso: enero-2011
Ubicación: Santiago
Mensajes: 5
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Función javascript con arreglo de checkbox

Ahhh perfecto, entendido :)

Muchas gracias a ambos!!!

Etiquetas: checkbox, arreglos
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 15:40.