2012-07-30 28 views
45

¿Cómo puedo eliminar el atributo "disabled" a una entrada html usando javascript?javascript eliminar el atributo "disabled" a la entrada html

<input id=edit disabled> 

en onclick Yo quería que mi etiqueta de entrada no consistiera en el atributo "disabled".

+0

posible duplicado de [¿Cómo desactivo? Botón ubmit cuando la casilla de verificación está desmarcada?] (http://stackoverflow.com/questions/5458531/how-do-i-disable-a-submit-button-when-checkbox-is-uncheck) duplicado porque esa pregunta explica cómo alternar, por lo tanto, cómo habilitar * y * deshabilitar como se solicita aquí. –

Respuesta

108

Conjunto disabled la propiedad del elemento en false:

document.getElementById('my-input-id').disabled = false; 

Si estás usando jQuery, el equivalente sería:

$('#my-input-id').prop('disabled', false); 

Durante varios campos de entrada, es posible acceder a ellos por clase en vez :

var inputs = document.getElementsByClassName('my-input-class'); 
for(var i = 0; i < inputs.length; i++) { 
    inputs[i].disabled = false; 
} 

Donde document podría sustituirse por forma, por ejemplo, para encontrar solo los elementos dentro de esa forma. También puede usar getElementsByTagName('input') para obtener todos los elementos de entrada. En su iteración for, entonces debe verificar que inputs[i].type == 'text'.

+1

sí, funciona, pero necesitaba mucha información para hacer lo mismo. ¿Hay algún atajo para esto? ¿Es esto posible ('id1', 'id2', 'id3')? –

+0

@IvorySantos: bien, mira mi edición. –

+1

sí, funciona! Gracias. por cierto, hay un error tipográfico en geElementsBy. Pensé que no funcionaría :) –

2

Para establecer el disabled a falso utilizando la propiedad name de la entrada:

document.myForm.myInputName.disabled = false; 
13

¿Por qué no eliminar ese atributo?

  1. JS vainilla: elem.removeAttribute('disabled')
  2. jQuery: no parecen elem.removeAttr('disabled')
+1

'jQuery (" # success "). RemoveAttr (" disabled ");' - esto funciona para mí, ¡gracias! – aftamat4ik

0
method 1 <input type="text" onclick="this.disabled=false;" disabled> 
<hr> 
method 2 <input type="text" onclick="this.removeAttribute('disabled');" disabled> 
<hr> 
method 3 <input type="text" onclick="this.removeAttribute('readonly');" readonly> 

código de las respuestas anteriores para trabajar en el modo en línea, pero hay una solución: Método 3.

ver demo https://jsfiddle.net/eliz82/xqzccdfg/

+0

Estos dos no funcionan para mí. '' método 1


método 2 '' –

+1

¿Has votado negativamente porque no sabes cómo leer una respuesta? El Método 1 es de la respuesta de David Hedlund, el método 2 es de la respuesta de Dragos Rusu. Una vez que se desactiva un elemento, "onclick" en ese elemento específico ya no funcionará en el modo en línea (no probé el modo js externo). La única forma es simular "deshabilitado" es una pequeña solución usando el atributo readonly y algunos css. O haga un elemento externo "onclick" como un botón que habilitará la entrada usando el método 1 y 2 (eso funcionará por supuesto). – eliz82

Cuestiones relacionadas