javascript는 html 입력에서 "disabled"속성을 제거합니다.


103

javascript를 사용하여 HTML 입력에서 "disabled"속성을 제거하려면 어떻게합니까?

<input id="edit" disabled>

onClick에서 입력 태그가 "disabled"속성으로 구성되지 않기를 원합니다.


의 중복 가능성 확인란의 선택을 취소 때 내가 사용하지 않는 방법은 버튼을 제출? 이 질문은 토글 방법을 설명하므로 여기에서 요청한대로 활성화 비활성화 하는 방법을 설명합니다 .
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

답변:


201

요소의 disabled속성을 false로 설정합니다 .

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

jQuery를 사용하는 경우 해당 항목은 다음과 같습니다.

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

여러 입력 필드의 경우 대신 클래스별로 액세스 할 수 있습니다.

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

어디 document형태로 대체 할 수있다, 예를 들어, 그 형태의 내부 요소만을 찾을 수 있습니다. getElementsByTagName('input')모든 입력 요소를 가져 오는 데 사용할 수도 있습니다 . 당신에 for반복, 당신은 그 다음을 확인해야 할 것이다 inputs[i].type == 'text'.


1
예, 작동하지만 동일한 작업을 수행하는 데 많은 입력이 필요했습니다. 이것에 대한 지름길이 있습니까? 이것이 가능합니까 ( 'id1', 'id2', 'id3')?
Jam Ville

1
예, 작동합니다! 감사. 그런데 geElementsBy에 오타 오류가 있습니다. 나는 :)이 작동하지 않을 생각
잼 빌에게

34

왜 그 속성을 제거하지 않습니까?

  1. 바닐라 JS : elem.removeAttribute('disabled')
  2. jQuery : elem.removeAttr('disabled')

1
jQuery("#success").removeAttr("disabled");-이것은 나를 위해 작동합니다, 감사합니다!
aftamat4ik

바닐라 js, removeAttribute는 IE에서 지원되지 않습니다.
MarCrazyness

@MarCrazyness removeAttribute는 IE11에서 지원되는 것 같습니다. unknown사용할 수 있음으로 표시되어 있으므로 IE를 열고 작동하는지 확인했습니다. 그렇습니다.
Artur

2

입력 속성을 disabled사용하여를 false로 설정하려면 name:

document.myForm.myInputName.disabled = false;

1

가장 좋은 대답은 removeAttribute입니다.

element.removeAttribute("disabled");

firefox에서 nowadys (2020)와 같이 disabled 속성은 false로 설정되어 있으면 활성화됩니다. firefox는 속성 자체를 찾고 있습니다. 그래서 최선의 해결책은 파이어 폭스를 위해 추가하거나 제거하는 것이며, 이것은 물론 모든 주요 브라우저에서 작동합니다.
Raffael Meier

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>

이전 답변의 코드는 인라인 모드에서 작동하지 않는 것 같지만 해결 방법이 있습니다.

데모보기 https://jsfiddle.net/eliz82/xqzccdfg/


이 두 가지는 나를 위해 작동하지 않습니다. method 1 <input type="text" onclick="this.disabled=false;" disabled> <hr> method 2 <input type="text" onclick="this.removeAttribute('disabled');" disabled>
Ambal Mani

1
답을 읽는 방법을 제대로 모르기 때문에 이것을 반대 투표 했습니까? 방법 1은 David Hedlund 응답에서, 방법 2는 Dragos Rusu 응답에서 가져옵니다. 요소가 비활성화되면 해당 특정 요소에 대한 "onclick"이 더 이상 인라인 모드에서 작동하지 않습니다 (외부 js 모드를 테스트하지 않았습니다). 유일한 방법은 "disabled"를 시뮬레이션하는 것입니다. readonly 속성과 일부 css를 사용하는 약간의 해결 방법이 있습니다. 또는 방법 1과 2를 사용하여 입력을 활성화하는 버튼과 같은 외부 "onclick"요소를 만듭니다 (물론 작동 함).
crisc82
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.