2012-10-10 39 views
7

Mục đích là để;
Nếu hộp kiểm bị tắt, không làm gì cả.
Nếu hộp kiểm được bật và chọn, hãy đặt kiểu của nút.
Đây là những gì tôi đã có cho đến nay;Kiểm tra hộp kiểm bị vô hiệu hóa (Jquery)

$(document).ready(function (e) { 


     $(".checkbox").live("click", function() { 

      if ($(this).hasAttribute('disabled')) { 
       return false; 
      } 
      var isAnyChecked; 

      $("input[type=checkbox]").each(function() { 
       var checkedValue = $(this).attr("checked"); 
       if (checkedValue == "checked") { 
        isAnyChecked = true; 
       } 


      }); 

      if (isAnyChecked) { 
       $("#<%= btnConfirm.ClientID %>").css("display", "block"); 

      } else { 
       $("#<%= btnConfirm.ClientID %>").css("display", "none"); 

      } 


     }); }); 

Tôi đã thử .is(':disabled'), .hasAttr(), .prop().attr(). Mọi sự trợ giúp sẽ rất được trân trọng.

+2

Đối với người mới bắt đầu, '.live' không được dùng nữa và nên được tắt cho' .on' – Chase

Trả lời

21

Bạn phải kiểm tra xem thuộc tính disabled có đúng không: .attr('disabled').

Hoặc, tốt hơn, sử dụng .is(':disabled') .---


EDIT: Vì vậy, có vẻ như .attr hiện đang chấp nhận sử dụng này (xem http://api.jquery.com/attr/) Cách ưa thích là:

$('#myCheckbox').prop('disabled') 

Cần lưu ý rằng điều này vẫn hoạt động kể từ hôm nay:

$('#myCheckbox').is(':disabled') 

Hãy thử nó ở đây: https://jsfiddle.net/Robloche/phaqfrmj/

+0

Tôi đã chỉnh sửa câu trả lời của mình. – Rodolphe

+0

Nó không hoạt động. Cảm ơn bạn tho, vì sự quan tâm của bạn. – user1595357

+1

Không, bạn phải kiểm tra thuộc tính: '.prop ('disabled')' – Bergi

1

Ngoài ra bạn có thể thử sử dụng này:

$("#myCheckBox").is('[disabled]'); 

trình cho tôi để xác định xem một yếu tố bị vô hiệu hóa, trong khi các giải pháp khác (.disabled, .is(':disabled'), .attr('disabled'), .prop('disabled')) không phải.

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