javascript Usuń atrybut "disabled" z wejścia html

Jak mogę usunąć atrybut "disabled" z wejścia HTML za pomocą javascript?

<input id="edit" disabled>

W onClick chcę, aby mój znacznik wejściowy nie składał się z atrybutu" disabled".

Author: ubuntugod, 2012-07-30

5 answers

Ustawia właściwość elementu disabled Na false:

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

Jeśli używasz jQuery, odpowiednikiem będzie:

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

Dla kilku pól wejściowych, możesz uzyskać do nich dostęp za pomocą klasy:

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

Gdzie document można zastąpić formularzem, na przykład, aby znaleźć tylko elementy wewnątrz tego formularza. Możesz również użyć getElementsByTagName('input'), aby uzyskać wszystkie elementy wejściowe. W swojej iteracji for, musisz to sprawdzić inputs[i].type == 'text'.

 217
Author: David Hedlund,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-30 11:05:14

Dlaczego po prostu nie usunąć tego atrybutu?

  1. vanilla JS: elem.removeAttribute('disabled')
  2. jQuery: elem.removeAttr('disabled')
 36
Author: Dragos Rusu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-12 01:30:32

Aby ustawić disabled Na false używając właściwości name Wejścia:

document.myForm.myInputName.disabled = false;
 3
Author: Henry Hedden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-08 13:19:28

Najlepszą odpowiedzią jest po prostu removeAttribute

element.removeAttribute("disabled");
 2
Author: Harshit Nigam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-01 11:07:11
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>

Kod poprzednich odpowiedzi wydaje się nie działać w trybie inline, ale istnieje obejście: Metoda 3.

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

 0
Author: crisc82,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-18 13:19:37