프로그래밍 언어/jQuery, ajax

jQuery를 사용하여 "disabled"속성을 제거하는 방법

Rateye 2021. 6. 29. 10:22
728x90
반응형

 

질문 : jQuery를 사용하여 "disabled"속성을 제거하는 방법은 무엇입니까?

처음에는 입력을 비활성화 한 다음 링크를 클릭하여 활성화해야합니다.

이것은 내가 지금까지 시도했지만 작동하지 않습니다.

HTML :

<input type="text" disabled="disabled" class="inputDisabled" value="">

jQuery :

$("#edit").click(function(event){
   event.preventDefault();
   $('.inputDisabled').removeAttr("disabled")
});
      


이것은 나에게 truefalse 보여 주지만 입력에 대한 변화는 없다.

$("#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.
});
                           

여기에 jsFiddle 예제가 있습니다.

attr() / removeAttr() 을 사용할 수 있는데 왜 prop() 를 사용합니까?

기본적으로 prop() 는 속성 (예 : autoplay , checked , disabledrequired )을 가져 오거나 설정할 때 사용해야합니다.

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
728x90
반응형