질문 : jQuery를 사용하여 "disabled"속성을 제거하는 방법은 무엇입니까?
처음에는 입력을 비활성화 한 다음 링크를 클릭하여 활성화해야합니다.
이것은 내가 지금까지 시도했지만 작동하지 않습니다.
HTML :
<input type="text" disabled="disabled" class="inputDisabled" value="">
jQuery :
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').removeAttr("disabled")
});
이것은 나에게 true
과 false
보여 주지만 입력에 대한 변화는 없다.
$("#edit").click(function(event){
alert('');
event.preventDefault();
alert($('.inputDisabled').attr('disabled'));
$('.inputDisabled').removeAttr("disabled");
alert($('.inputDisabled').attr('disabled'));
});
답변
jQuery를 사용할 때 항상 prop()
메서드를 사용하여 요소를 활성화하거나 비활성화하십시오 (이유는 아래 참조).
귀하의 경우에는 다음과 같습니다.
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});
attr()
/ removeAttr()
을 사용할 수 있는데 왜 prop()
를 사용합니까?
기본적으로 prop()
는 속성 (예 : autoplay
, checked
, disabled
및 required
)을 가져 오거나 설정할 때 사용해야합니다.
removeAttr()
을 사용 disabled
속성 자체를 완전히 제거하는 것입니다. 반면에 prop()
은 속성의 기본 부울 값을 false로 설정하는 것뿐입니다.
원하는 작업 은 attr()
/ removeAttr()
사용하여 수행 할 수 있지만 반드시 수행해야 한다는 의미는 아닙니다 (이 경우와 같이 이상하거나 문제가있는 동작을 유발할 수 있음).
다음 발췌문 ( prop ()에 대한 jQuery 문서에서 가져옴 )은 이러한 점을 더 자세히 설명합니다.
"특성과 속성의 차이는 특정 상황에서 중요 할 수 있습니다. jQuery 1.6 이전에는 .attr()
메서드가 일부 속성을 검색 할 때 가끔 속성 값을 고려하여 일관되지 않은 동작을 유발할 수있었습니다. jQuery 1.6부터 .prop()
메서드는 속성 값을 명시 적으로 검색하는 방법을 제공하는 반면 .attr()
은 속성을 검색합니다. "
"속성은 일반적으로 직렬화 된 HTML 속성을 변경하지 않고 DOM 요소의 동적 상태에 영향을줍니다. 예로는 입력 요소 value
속성, 입력 및 버튼 disabled
checked
속성이 있습니다. .prop()
메서드는 .attr()
메서드 대신 disabled
으로 설정하고 checked
value
을 가져오고 설정하는 데 .val()
메서드를 사용해야합니다. "
출처 : https://stackoverflow.com/questions/13626517/how-to-remove-disabled-attribute-using-jquery
'프로그래밍 언어 > jQuery, ajax' 카테고리의 다른 글
jQuery 선택기의 와일드 카드 (0) | 2021.06.30 |
---|---|
jQuery Ajax 오류 처리, 사용자 정의 예외 메시지 표시 (0) | 2021.06.30 |
jQuery Ajax 호출 후 리디렉션 요청을 관리하는 방법 (0) | 2021.06.29 |
jQuery.each () util에서 다음 반복으로 건너 뛰는 방법 (0) | 2021.06.29 |
어떤 버전의 jQuery가 로드되었는지 확인하는 방법 (0) | 2021.06.28 |