2009-11-23 6 views
17

removeAttr이 작동하지 않는 것 같습니다. jQuery 사이트에서 본 예제를 사용하고 있습니다. 기본적으로 onclick 필드를 비활성화하는 속성을 추가합니다 (잘 작동 함). 사용자가 다시 클릭하면 해당 필드를 활성화해야합니다. 나는 else 블록이 해고되고 있는지 확인하기 위해 경고를 사용 했으므로 그렇지 않다는 것을 알았습니다.jQuery 제거 속성

코드 :

$('#WindowOpen').click(function (event) { 
    event.preventDefault(); 
    $('#forgot_pw').slideToggle(600); 

    if('#forgot_pw') { 
    $('#login_uname, #login_pass').attr('disabled','disabled'); 
    } else { 
    $('#login_uname, #login_pass').removeAttr('disabled'); 
    } 
}); 

감사합니다.

+1

('# forgot_pw')이 항상 실행됩니다. 나는 이것이 오타라고 생각 하나? – mtyaka

+2

나중에 참조 할 수 있도록, jQuery는 입력 속성을 가져오고 사용할 수 없도록 설정할 때'.prop()'메서드 (http://api.jquery.com/prop/)를 사용할 것을 권장합니다. 사용하는 jQuery의 버전과 사용자가 탐색하는 브라우저에 따라 더 많은 브라우저 간 친숙합니다. – jasonmerino

+1

가능한 중복 제거 [JQuery를 사용하여 비활성화 된 속성?] (http://stackoverflow.com/questions/13626517/remove-disabled-attribute-using-jquery) – user2381114

답변

17

모든 좋은으로 교체하려고 :

$('#WindowOpen').toggle(
    function() 
    { 
     $('#login_uname, #login_pass').attr("disabled","disabled");  
    }, 
    function() 
    { 
     $('#login_uname, #login_pass').removeAttr("disabled");  
    }); 
5

문제는 다음 코드 줄은 항상 true로 평가된다는 것입니다.

if('#forgot_pw') 

이 사용

if($('#forgot_pw').attr('disabled')) 
+0

같은 문제는 사용하지 않도록 설정했지만 다시 사용하도록 설정하지 않습니다. – Tarek

4
$('#forgot_pw').attr('disabled', false); 

당신을 위해 작동합니다.