development

jQuery를 사용하여“disabled”속성을 제거하는 방법은 무엇입니까?

big-blog 2020. 2. 28. 19:18
반응형

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'));
});

prop()jQuery를 사용할 때 항상 메소드를 사용하여 요소를 사용 또는 사용 안함으로 설정하십시오 (이유는 아래 참조).

귀하의 경우 다음과 같습니다.

$("#edit").click(function(event){
   event.preventDefault();
   $('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});

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


/ prop()사용 하여 이것을 할 수있을 때 왜 사용 합니까?attr()removeAttr()

기본적으로, 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()방법을 설정하기 위해 사용되어야 disabled하고 checked대신 .attr()방법은. .val()방법은 얻고 설정하는 데 사용되어야한다 value. "


<input type="text" disabled="disabled" class="inputDisabled" value="">
​<button id="edit">Edit</button>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

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

http://jsfiddle.net/ZwHfY/


비활성화 된 속성 사용을 제거하려면

 $("#elementID").removeAttr('disabled');

비활성화 된 속성 사용을 추가하려면

$("#elementID").prop("disabled", true);

즐겨 :)


이렇게 사용하십시오

HTML :

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

<div id="edit">edit</div>

JS :

 $('#edit').click(function(){ // click to
            $('.inputDisabled').attr('disabled',false); // removing disabled in this class
 });

나는 당신이 비활성화 된 상태 토글 하려고한다고 생각합니다 . 마녀의 경우 이것을 사용해야합니다 ( 이 질문에서 ) :

$(".inputDisabled").prop('disabled', function (_, val) { return ! val; });

여기 작동하는 바이올린이 있습니다.


이것을 쉽게 설정할 수 있다고 생각했습니다.

$(function(){
$("input[name^=radio_share]").click
(
    function()
    {
        if($(this).attr("id")=="radio_share_dependent")
        {
            $(".share_dependent_block input, .share_dependent_block select").prop("disabled",false);   
        }
        else
        {
            $(".share_dependent_block input, .share_dependent_block select").prop("disabled",true);   
        }
    }
 );
});

이것은 나를 위해 일한 유일한 코드였습니다.

element.removeProp('disabled')

removeProp아닙니다 removeAttr.

나는 jQuery 2.1.3여기를 사용하고 있습니다.


JQuery가없는 2018

질문은 JQuery에 관한 것입니다.이 답변은 FYI입니다.

document.getElementById('edit').addEventListener(event => {
    event.preventDefault();
    [...document.querySelectorAll('.inputDisabled')].map(e => e.disabled = false);
}); 

이 질문은 특히 jQuery에 대해 언급하지만 jQuery 없이이 작업을 수행하려는 경우 바닐라 JavaScript의 해당 내용은 다음과 같습니다.

elem.removeAttribute('disabled');

참고 URL : https://stackoverflow.com/questions/13626517/how-to-remove-disabled-attribute-using-jquery



반응형