Foros del Web » Programando para Internet » Javascript »

Activar varios checkbox (disabled = false) si otro checkbox es elegido (checked)

Estas en el tema de Activar varios checkbox (disabled = false) si otro checkbox es elegido (checked) en el foro de Javascript en Foros del Web. Hola, A ver si alguien me puede ayudar, la cuestión es que tenía 2 botones ratio que me activan/desactivan un grupo de checkbox con 2 ...
  #1 (permalink)  
Antiguo 10/11/2011, 12:42
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 18 años, 11 meses
Puntos: 2
Activar varios checkbox (disabled = false) si otro checkbox es elegido (checked)

Hola,

A ver si alguien me puede ayudar, la cuestión es que tenía 2 botones ratio que me activan/desactivan un grupo de checkbox con 2 funciones:
Código HTML:
function habilitap8(){ 
document.ENCUESTA_STAE.pregunta8[0].disabled = false;
document.ENCUESTA_STAE.pregunta8[1].disabled = false;
document.ENCUESTA_STAE.pregunta8[2].disabled = false; 
document.ENCUESTA_STAE.pregunta8[3].disabled = false;
document.ENCUESTA_STAE.pregunta8[4].disabled = false;
document.ENCUESTA_STAE.pregunta8[5].disabled = false;
document.ENCUESTA_STAE.pregunta8[6].disabled = false; 
document.ENCUESTA_STAE.pregunta8[7].disabled = false;
document.ENCUESTA_STAE.pregunta8[8].disabled = false; 
document.ENCUESTA_STAE.pregunta8[9].disabled = false;
document.ENCUESTA_STAE.pregunta8[10].disabled = false;
document.ENCUESTA_STAE.pregunta8[11].disabled = false; 
document.ENCUESTA_STAE.pregunta8[12].disabled = false;
}

function deshabilitap8(){ 
document.ENCUESTA_STAE.pregunta8[0].disabled = true;
document.ENCUESTA_STAE.pregunta8[1].disabled = true;
document.ENCUESTA_STAE.pregunta8[2].disabled = true; 
document.ENCUESTA_STAE.pregunta8[3].disabled = true;
document.ENCUESTA_STAE.pregunta8[4].disabled = true;
document.ENCUESTA_STAE.pregunta8[5].disabled = true;
document.ENCUESTA_STAE.pregunta8[6].disabled = true; 
document.ENCUESTA_STAE.pregunta8[7].disabled = true;
document.ENCUESTA_STAE.pregunta8[8].disabled = true; 
document.ENCUESTA_STAE.pregunta8[9].disabled = true;
document.ENCUESTA_STAE.pregunta8[10].disabled = true;
document.ENCUESTA_STAE.pregunta8[11].disabled = true; 
document.ENCUESTA_STAE.pregunta8[12].disabled = true;
}
el problema es que ahora tengo que activarlos desde el primer checkbox pregunta8[0], he probado con un if... else pero no me deja, pego code, a ver si alguien me puede ayudar

Código HTML:
function habilitap8y9(){ 
if (document.ENCUESTA_STAE.pregunta8[0].checked = true) {
document.ENCUESTA_STAE.pregunta8[1].disabled = true;
document.ENCUESTA_STAE.pregunta8[2].disabled = true; 
document.ENCUESTA_STAE.pregunta8[3].disabled = true;
document.ENCUESTA_STAE.pregunta8[4].disabled = true;
document.ENCUESTA_STAE.pregunta8[5].disabled = true;
document.ENCUESTA_STAE.pregunta8[6].disabled = true; 
document.ENCUESTA_STAE.pregunta8[7].disabled = true;
document.ENCUESTA_STAE.pregunta8[8].disabled = true; 
document.ENCUESTA_STAE.pregunta8[9].disabled = true;
document.ENCUESTA_STAE.pregunta8[10].disabled = true;
document.ENCUESTA_STAE.pregunta8[11].disabled = true; 
document.ENCUESTA_STAE.pregunta8[12].disabled = true;
}else{
document.ENCUESTA_STAE.pregunta8[1].disabled = false;
document.ENCUESTA_STAE.pregunta8[2].disabled = false; 
document.ENCUESTA_STAE.pregunta8[3].disabled = false;
document.ENCUESTA_STAE.pregunta8[4].disabled = false;
document.ENCUESTA_STAE.pregunta8[5].disabled = false;
document.ENCUESTA_STAE.pregunta8[6].disabled = false; 
document.ENCUESTA_STAE.pregunta8[7].disabled = false;
document.ENCUESTA_STAE.pregunta8[8].disabled = false; 
document.ENCUESTA_STAE.pregunta8[9].disabled = false;
document.ENCUESTA_STAE.pregunta8[10].disabled = false;
document.ENCUESTA_STAE.pregunta8[11].disabled = false; 
document.ENCUESTA_STAE.pregunta8[12].disabled = false;
}
}
en el formulario tengo los campos de inicio sin disabled

Código HTML:
<input name="pregunta8[1]" type="checkbox" id="pregunta8" value="Muy bien"> 
Gracias de antemano.
  #2 (permalink)  
Antiguo 10/11/2011, 14:08
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 14 años, 10 meses
Puntos: 56
Respuesta: Activar varios checkbox (disabled = false) si otro checkbox es elegido (ch

Código Javascript:
Ver original
  1. function habilitap8y9(el){
  2.     var i = 1, input
  3.     while(input = el.form.pregunta8[i++]) input.disabled = !el.checked
  4. }

Código HTML:
<input name="pregunta8[0]" type="checkbox" id="pregunta8" value="Primer checkbox" checked="checked" onclick="habilitap8y9(this)"> 
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #3 (permalink)  
Antiguo 10/11/2011, 20:24
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 18 años, 11 meses
Puntos: 2
Respuesta: Activar varios checkbox (disabled = false) si otro checkbox es elegido (ch

Gracias America, pero al final lo he hecho con otro code que encontre en


http://www.desarrolloweb.com/faq/250.php


Saludos.
  #4 (permalink)  
Antiguo 10/11/2011, 22:53
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 14 años, 10 meses
Puntos: 56
Respuesta: Activar varios checkbox (disabled = false) si otro checkbox es elegido (ch

Hace exactamente lo mismo, puedes usar bucles para optimizar tus scripts.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #5 (permalink)  
Antiguo 11/11/2011, 06:38
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 9 años, 11 meses
Puntos: 13
Respuesta: Activar varios checkbox (disabled = false) si otro checkbox es elegido (ch

América, serías tan amable de explicarme la sitaxis de:

Código Javascript:
Ver original
  1. while(input = el.form.pregunta8[i++]) input.disabled = !el.checked

Gracias
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend
  #6 (permalink)  
Antiguo 11/11/2011, 07:56
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 14 años, 10 meses
Puntos: 56
Respuesta: Activar varios checkbox (disabled = false) si otro checkbox es elegido (ch

Se declara la variable i=1 (contador del bucle), input (se le asignara un elemento mientras corra en el bucle)

while(input = ..pregunta8[i++])

...mientras existe elemento ..pregunta8[i++], asignar el mismo a input.

Si ..pregunta8[i++] no existe input sera undefined (false)

Hay que tener en cuenta que si hay una asignación en un bucle Ej.(input=undefined), se retorna el valor asignado que es undefined, aparentemente lo mismo que false, se cortará el bucle.

input.disabled = !el.checked

Se asigna al elemento del bucle el atributo disabled si es que el valor del checkbox dependiente no está seleccionado
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */

Etiquetas: checkbox, disabled, false, formulario, funcion, input, botones
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 16:41.