2012-07-30 2 views
45

Come posso rimuovere l'attributo "disabled" su un input html usando javascript?javascript rimuovere l'attributo "disabled" per l'input HTML

<input id=edit disabled> 

in onclick Volevo che il mio tag di input non consistesse in un attributo "disabled".

+0

possibile duplicato di [Come disabilitare come pulsante ubmit quando la casella di controllo è deselezionata?] (http://stackoverflow.com/questions/5458531/how-do-i-disable-a-submit-button-when-checkbox-is-uncheck) duplicati perché la domanda spiega come attivare, quindi come abilitare * e * disabilitare come richiesto qui. –

risposta

108

Set disabled proprietà dell'elemento su false:

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

Se stai usando jQuery, l'equivalente sarebbe:

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

Per diversi campi di input, è possibile accedere per classe, invece :

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

Dove document potrebbe essere sostituito con un forma, per esempio, per trovare solo gli elementi all'interno di quella forma. È anche possibile utilizzare getElementsByTagName('input') per ottenere tutti gli elementi di input. Nella tua iterazione for, dovresti quindi verificare che inputs[i].type == 'text'.

+1

sì funziona, ma ho avuto un sacco di input per fare la stessa cosa. C'è qualche scorciatoia per questo? è questo posible ('id1', 'id2', 'id3')? –

+0

@IvorySantos: ok, guarda la mia modifica. –

+1

sì, funziona! Grazie. a proposito c'è un errore di battitura in geElementsBy. Ho pensato che non avrebbe funzionato :) –

2

Per impostare il disabled false utilizzando la proprietà name dell'ingresso:

document.myForm.myInputName.disabled = false; 
13

Perché non solo rimuovere l'attributo?

  1. JS vaniglia: elem.removeAttribute('disabled')
  2. jQuery: elem.removeAttr('disabled')
codice
+1

'jQuery (" # successo "). RemoveAttr (" disabled ");' - questo funziona per me, grazie! – 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> 

delle risposte precedenti non sembrano funzionare in modalità in linea, ma c'è una soluzione: metodo 3.

vedere la demo https://jsfiddle.net/eliz82/xqzccdfg/

+0

Questi due non funzionano per me. '' metodo 1


metodo 2 '' –

+1

Hai downvoted questo solo perché non sai bene come leggere una risposta? Il metodo 1 deriva dalla risposta di David Hedlund, il metodo 2 dalla risposta di Dragos Rusu. Una volta che un elemento è disabilitato, "onclick" su quell'elemento specifico non funzionerà più in modalità inline (non ho provato la modalità js esterna). L'unico modo è simulare "disabilitato" è una piccola soluzione alternativa che utilizza l'attributo readonly e alcuni css. OPPURE crea un elemento "onclick" esterno come un pulsante che abiliti l'input usando i metodi 1 e 2 (che funzionerà ovviamente). – eliz82