Foros del Web » Programando para Internet » Javascript »

funcion para desabilitar elementos usando checkbox

Estas en el tema de funcion para desabilitar elementos usando checkbox en el foro de Javascript en Foros del Web. hola estoy tratando de realizar una función que cuando uno seleccione el checkbox se desabiliten los inputs, select y me gustaría también que al desmarcar ...
  #1 (permalink)  
Antiguo 27/10/2009, 13:01
 
Fecha de Ingreso: mayo-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 1
funcion para desabilitar elementos usando checkbox

hola estoy tratando de realizar una función que cuando uno seleccione el checkbox se desabiliten los inputs, select y me gustaría también que al desmarcar el checkbox se habiliten nuevamente este es mi codigo:

Código HTML:
function desactivar(){

if(chk=this.checked){

document.f1.espec.disabled =true;

}

}
Código HTML:
<input type="checkbox" name="chk"  onclick="javascript:desactivar()"> 
  #2 (permalink)  
Antiguo 27/10/2009, 13:17
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: funcion para desabilitar elementos usando checkbox

tienes que usar if/else de modo que en un bloque inhabilitas todos los campos que quieras y en el otro bloque habilitas los campos antes inhabilitados. o sea, dentro de tu funcion:
Código:
if(/*compruebas el estado de un elemento */){
// aqui inhabilitas o habilitas los campos;
}else{
// aqui haces lo contrario al bloque anterior;
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 27/10/2009, 13:27
 
Fecha de Ingreso: mayo-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 1
Respuesta: funcion para desabilitar elementos usando checkbox

Cita:
Iniciado por zerokilled Ver Mensaje
tienes que usar if/else de modo que en un bloque inhabilitas todos los campos que quieras y en el otro bloque habilitas los campos antes inhabilitados. o sea, dentro de tu funcion:
Código:
if(/*compruebas el estado de un elemento */){
// aqui inhabilitas o habilitas los campos;
}else{
// aqui haces lo contrario al bloque anterior;
}
sabes que no me funciona el if para comprobar si se selecciono el checkbox estara bien escrito o tiene algun errror.
  #4 (permalink)  
Antiguo 27/10/2009, 13:44
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: funcion para desabilitar elementos usando checkbox

te falla porque el codigo, al no estar directamente definido en el evento, el keyword this hace referencia a otro objeto en lugar del elemento. ¿que puedes hacer? pasale como parametro el keyword this cuando invoques la funcion y, evidentemente, dentro de la funcion usas ese argumento. intentalo...
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 27/10/2009, 14:24
 
Fecha de Ingreso: mayo-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 1
Respuesta: funcion para desabilitar elementos usando checkbox

ya encontre la solucion aca la dejo y tengo otra pregunta quiero dejar marcada la opcion checked="checked" cuando uno ingresa a la pagina y si se encuentra cheked esten desabilitados los elementos automaticamente lo deje con la opcion del cheked pero no resulta aparece marcada la opcion pero no estan desabilitados los elementos al entrar a la pagina .


Código HTML:
<td><input type="checkbox" name="chk" checked="checked"  onclick="CambiaEstado(this.checked);">

<script language="javascript" type="text/javascript">
function CambiaEstado(valor){
if (valor == true){
document.f1.espec.disabled = true;
}else{
document.f1.espec.disabled = false;
}
}</script> 
  #6 (permalink)  
Antiguo 27/10/2009, 14:36
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: funcion para desabilitar elementos usando checkbox

aplicale el atributo disabled="disabled" al elemento correpondiente.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 27/10/2009, 14:51
 
Fecha de Ingreso: mayo-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 1
Respuesta: funcion para desabilitar elementos usando checkbox

zerokilled sabes que le aplique el disabled = "disabled"; pero sigue cuando entro a la pagina marcada la opcion del cheked pero no estan desabilitados los elementos
  #8 (permalink)  
Antiguo 27/10/2009, 15:01
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: funcion para desabilitar elementos usando checkbox

en este ejemplo todos los elementos estan inhabilitados con excepcion del checkbox.
Código:
<input type="checkbox" checked="checked" ... />
<input disabled="disabled" ... />
<select disabled="disabled" ... />
...
</select>
<textarea disabled="disabled" ...></textarea>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 27/10/2009, 15:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 1
Respuesta: funcion para desabilitar elementos usando checkbox

zero esta bien pero ahora tengo el problema de que cuando saco el checked="checked" y la opcion esta desmarcada no se quita el disable que aplico a los elementos sorry por ser tan insistente.
  #10 (permalink)  
Antiguo 27/10/2009, 15:16
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: funcion para desabilitar elementos usando checkbox

ahora comprendi tu consulta, habia entendido que al estar marcado querias que los campos estuvieran inhabilitado. tu codigo me funciona perfectamente y no he hecho ningun cambio a tu codigo. ejemplo con tu codigo...
Código:
<form name="f1">
<input type="checkbox" checked="checked"  onclick="CambiaEstado(this.checked)" />
<input disabled="disabled" name="espec" /></form>
<script language="javascript" type="text/javascript">
function CambiaEstado(valor){
if (valor == true){
document.f1.espec.disabled = true;
}else{
document.f1.espec.disabled = false;
}
}</script>
asegurate que el navegador esta cargando una copia mas reciente. obligale al navegador a cargar el archivo pulsando la tecla CTRL + F5.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 27/10/2009, 15:20
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: funcion para desabilitar elementos usando checkbox

Hola sebastian85 y zerokilled

Sólo para simplificar un poco el código:

Código javascript:
Ver original
  1. function CambiaEstado(valor){
  2.   document.f1.espec.disabled = valor;
  3. }

Saludos,
  #12 (permalink)  
Antiguo 27/10/2009, 15:21
 
Fecha de Ingreso: mayo-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 1
Respuesta: funcion para desabilitar elementos usando checkbox

ese mismo codigo si le quitas el checked="checked" te queda :

<input type="checkbox" onclick="CambiaEstado(this.checked)" />

pero cuando actualizas sigue desabilitado el input eso es lo que te preguntaba si se puede habilutar sin tener que estar agregando el disable
  #13 (permalink)  
Antiguo 27/10/2009, 15:30
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: funcion para desabilitar elementos usando checkbox

tendrias que llamar la funcion en algun punto de tu documento. podria ser luego que se cargue el formulario o puede ser en el evento onload. en todo caso, cuando invoques la funcion, tambien tienes que pasarle el estado de dicho checkbox pero esta vez es diferente. no le puedes pasar this.checked porque this siempre hace referencia a un objeto arbitrario de acuerdo a donde es usado.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 09:39.