2012-10-10 11 views
7

Der Zweck ist zu;
Wenn das Kontrollkästchen deaktiviert ist, nichts tun.
Wenn das Kontrollkästchen aktiviert und aktiviert ist, legen Sie den Stil einer Schaltfläche fest.
Hier ist, was ich bis jetzt habe;Check Checkbox Disabled (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"); 

      } 


     }); }); 

Ich habe .is(':disabled') versucht, .hasAttr(), .prop() und .attr(). Jede Hilfe würde sehr geschätzt werden.

+2

Für den Anfang, '.Live' ist veraltet und sollte für' .on' – Chase

Antwort

21

Sie müssen überprüfen, ob das Attribut disabled wahr ist: .attr('disabled').

Oder besser, verwenden .is(':disabled') .---


EDIT:

: So scheint es, dass .attr jetzt für diese Verwendung ist veraltet Der bevorzugte Weg ist ( http://api.jquery.com/attr/ sehen)
$('#myCheckbox').prop('disabled') 

Es ist zu beachten, dass dies noch heute funktioniert:

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

es hier probieren: https://jsfiddle.net/Robloche/phaqfrmj/

+0

ausgewechselt werden Ich bearbeitete meine Antwort. – Rodolphe

+0

Es hat nicht funktioniert. Danke tho, für dein Interesse. – user1595357

+1

Nein, Sie müssen für die Eigenschaft überprüfen: '.prop ('deaktiviert')' – Bergi

1

Sie können auch versuchen, diese verwenden:

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

Works für mich ein Element, um zu bestimmen, ob deaktiviert ist, während andere Lösungen (.disabled, .is(':disabled'), .attr('disabled'), .prop('disabled')) nicht.