Buenas,
Soy algo novato en esto del javascript y tengo un problemilla.
Tengo un formulario con varios grupos de checkbox, por ejemplo:
<input TYPE="checkbox" name="Tipo1">
<input TYPE="checkbox" name="Tipo2">
<input TYPE="checkbox" name="TipoN">
A su vez, tengo checks de éste estilo:
<input TYPE="checkbox" name="Tipo1_Subtipo1">
<input TYPE="checkbox" name="Tipo1_Subtipo2">
<input TYPE="checkbox" name="Tipo1_SubtipoZ">
Es decir, hay un grupo de checks asociados (por medio del nombre) a un check "padre".
Lo que quiero hacer es que, cada vez que se active o desactive uno de esos checks padres (los "TipoN") se desactiven o activen todos sus checks hijos (los "TipoN_SubtipoZ").
Lo que se me había ocurrido es una función que se llame cuando se haga click en uno de los checks padres, a grandes rasgos es algo de éste estilo:
function cambiar(inicio, fin) {
// inicio es el primer check a cambiar (el número del elemento dentro del formulario)
// fin es el número total de elementos que se deben cambiar
fin = fin + inicio;
for (z=inicio;z<fin;z++) {
document.Form.elements[z].checked = !document.Busqueda.elements[z].checked;
}
}
Esto funciona, pero no me gusta mucho porque controlo los checks por su número dentro del array elements del formulario, de tal manera que tendría que cambiar la llamada si añado algún elemento más al formulario por delante de esos.
Además de ésta manera sólo puedo usar la función en checks que sean consecutivos.
La pregunta es ¿hay alguna forma de tratar dentro de la función el nombre del elemento?
Es decir, necesito acceder a document.form.TipoN_SubtipoZ, siendo N y Z dos números que varian en cada ejecución de la función e iteración del bucle.
No sé si se habrá entendido bien, básicamente lo que necesito es una forma de crear una expresión del estilo de: "document.formulario.elemento" dinámicamente.
Un saludo.