2009-11-23 38 views
17

Tôi dường như không thể nhận được removeAttr để hoạt động, tôi đang sử dụng ví dụ tôi đã thấy trên trang web jQuery. Về cơ bản onclick Tôi thêm thuộc tính để vô hiệu hóa một trường (hoạt động tốt) nhưng khi người dùng nhấp lần nữa, nó sẽ cho phép trường được đề cập. Tôi đã sử dụng các cảnh báo để đảm bảo rằng khối khác đang được kích hoạt, vì vậy tôi biết không phải vậy.jQuery xóa thuộc tính

Code:

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

Cảm ơn.

+1

nếu ('# forget_pw') sẽ luôn chạy. Tôi đoán đây là lỗi đánh máy? – mtyaka

+2

Để tham khảo trong tương lai, jQuery khuyến nghị sử dụng phương thức '.prop()' (http://api.jquery.com/prop/) khi nhận và thiết lập các thuộc tính đầu vào như bị vô hiệu hóa. Nó thân thiện với trình duyệt chéo hơn tùy thuộc vào phiên bản jQuery bạn sử dụng và trình duyệt mà người dùng của bạn điều hướng. – jasonmerino

+1

có thể trùng lặp của [Loại bỏ thuộc tính bị vô hiệu hóa bằng cách sử dụng JQuery?] (Http://stackoverflow.com/questions/13626517/remove-disabled-attribute-using-jquery) – user2381114

Trả lời

17

Tất cả tốt sử dụng này:

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

Vấn đề của bạn là dòng mã sau sẽ luôn được đánh giá là đúng.

if('#forgot_pw') 

thử thay thế với

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

Cùng một vấn đề, tôi nhận được nó để vô hiệu hóa nhưng không kích hoạt lại. – Tarek

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

nên làm việc cho bạn.

Các vấn đề liên quan