[javascript] 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여기를 사용하고 있습니다.