2012-10-10 6 views
7

Celem jest;
Jeśli pole wyboru jest wyłączone, nie rób nic.
Jeśli pole wyboru jest włączone i zaznaczone, ustaw styl przycisku.
Oto, co mam do tej pory;Sprawdź pole wyboru Wyłączone (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"); 

      } 


     }); }); 

Próbowałem .is(':disabled'), .hasAttr(), .prop() i .attr(). Każda pomoc będzie bardzo ceniona.

+2

Po pierwsze, '.live' jest przestarzałe i powinno zostać wyłączone dla' .on' – Chase

Odpowiedz

21

Musisz sprawdzić, czy atrybut disabled jest prawdziwy:.

lub lepiej wykorzystywać .is(':disabled') .---


EDIT: Wydaje się więc, że .attr obecnie nie zaleca się do tego zastosowania (patrz http://api.jquery.com/attr/) Preferowanym sposobem jest:

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

Należy zauważyć, że to nadal działa od dzisiaj:

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

Wypróbuj go tutaj: https://jsfiddle.net/Robloche/phaqfrmj/

+0

Edytowałem swoją odpowiedź. – Rodolphe

+0

To nie zadziałało. Dziękuję ci za zainteresowanie. – user1595357

+1

Nie, musisz sprawdzić dla właściwości: '.prop ('disabled')' – Bergi

1

Ponadto można spróbować to wykorzystać:

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

pracuje dla mnie, aby ustalić, czy element jest wyłączony, podczas gdy inne rozwiązania (.disabled, .is(':disabled'), .attr('disabled'), .prop('disabled')) nie.