Foros del Web » Programando para Internet » Javascript »

Habilitar y desabilitar un campo con Javascript

Estas en el tema de Habilitar y desabilitar un campo con Javascript en el foro de Javascript en Foros del Web. Hola. Escribo porque no puedo hacer andar una función JavaScript para habilitar y deshabilitar un campo de texto mediante un checkbox. La función que estoy ...
  #1 (permalink)  
Antiguo 05/06/2013, 14:26
Avatar de pabloe9k  
Fecha de Ingreso: julio-2008
Ubicación: Argentina
Mensajes: 190
Antigüedad: 16 años, 4 meses
Puntos: 3
Pregunta Habilitar y desabilitar un campo con Javascript

Hola.
Escribo porque no puedo hacer andar una función JavaScript para habilitar y deshabilitar un campo de texto mediante un checkbox.

La función que estoy utilizando es esta:

Código:
<script>
function habilitaCompras(campoCantidad)
{
	var estadoActual = document.getElementById(campoCantidad)

	if(estadoActual.disabled == 'true')
	{
		estadoActual.disabled=false;
	}
	else
	{
		estadoActual.disabled=true;
	}
</script>

<input type="checkbox" name="producto" onclick="habilitaCompras('cantidad')" />

<br/>

<input type="number" name="cantidad" id="cantidad" min="1" max="99" step="1" size="1" disabled="true" />
No se por qué, pero no logro hacerlo funcionar.
En donde estará mi error?
Como siempre, apreciaré mucho su ayuda.

Gracias.
Saludos.
  #2 (permalink)  
Antiguo 05/06/2013, 14:30
Avatar de diego9j  
Fecha de Ingreso: septiembre-2011
Mensajes: 33
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Habilitar y desabilitar un campo con Javascript

Has probado a poner, en una funcion onload, o en el mismo css del campo, el disabled false como predefinido?
Con la funcion toggle visibility pasa algo parecido, el preset no esta bien hecho y hay que hacer esto. Puede ser tu caso


Saludos
  #3 (permalink)  
Antiguo 05/06/2013, 15:17
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Habilitar y desabilitar un campo con Javascript

Tienes varios errores.
  1. Te faltaba cerrar una llave de la función
  2. La condición estadoActual.disabled == "true" es incorrecta, debe ser estadoActual.disabled == true o estadoActual.disabled



Código Javascript:
Ver original
  1. function habilitaCompras(campoCantidad)
  2. {
  3.     var estadoActual = document.getElementById(campoCantidad);
  4.  
  5.    
  6.     if(estadoActual.disabled)
  7.     {
  8.         estadoActual.disabled= false;
  9.     }
  10.     else
  11.     {
  12.         estadoActual.disabled= true;
  13.     }
  14. }

Una versión reducida:

Código Javascript:
Ver original
  1. function habilitaCompras(campoCantidad)
  2. {
  3.     var estadoActual = document.getElementById(campoCantidad);
  4.  
  5.     estadoActual.disabled = !estadoActual.disabled;
  6. }
  #4 (permalink)  
Antiguo 05/06/2013, 17:36
Avatar de pabloe9k  
Fecha de Ingreso: julio-2008
Ubicación: Argentina
Mensajes: 190
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Habilitar y desabilitar un campo con Javascript

Cita:
Iniciado por alexg88 Ver Mensaje
Tienes varios errores.
  1. Te faltaba cerrar una llave de la función
  2. La condición estadoActual.disabled == "true" es incorrecta, debe ser estadoActual.disabled == true o estadoActual.disabled



Código Javascript:
Ver original
  1. function habilitaCompras(campoCantidad)
  2. {
  3.     var estadoActual = document.getElementById(campoCantidad);
  4.  
  5.    
  6.     if(estadoActual.disabled)
  7.     {
  8.         estadoActual.disabled= false;
  9.     }
  10.     else
  11.     {
  12.         estadoActual.disabled= true;
  13.     }
  14. }

Una versión reducida:

Código Javascript:
Ver original
  1. function habilitaCompras(campoCantidad)
  2. {
  3.     var estadoActual = document.getElementById(campoCantidad);
  4.  
  5.     estadoActual.disabled = !estadoActual.disabled;
  6. }
Tenías razón!! Era la condición que estaba usando (la llave me la comí cuando armé el post).
Muchísimas gracias!!

Etiquetas: campo, desabilitar, funcion, habilitar, input
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:08.