2012-10-10 48 views
7

El propósito es;
Si la casilla de verificación está deshabilitada, no haga nada.
Si la casilla de verificación está habilitada y marcada, configure el estilo de un botón.
Esto es lo que tengo hasta ahora;Marque la casilla de verificación deshabilitada (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"); 

      } 


     }); }); 

He intentado .is(':disabled'), .hasAttr(), .prop() y .attr(). Cualquier ayuda sería muy apreciada.

+2

Para empezar, '.live' está en desuso y debe cambiarse por' .on' – Chase

Respuesta

21

Debes comprobar que el atributo disabled es verdadero: .attr('disabled').

O, mejor, utilice .is(':disabled') .---


EDIT: lo que parece que .attr ahora es obsoleto para este uso (ver http://api.jquery.com/attr/) La forma preferida es:

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

Cabe señalar que esto todavía funciona a partir de hoy:

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

Inténtelo aquí: https://jsfiddle.net/Robloche/phaqfrmj/

+0

He editado mi respuesta. – Rodolphe

+0

No funcionó. Gracias, por su interés. – user1595357

+1

No, tiene que verificar la propiedad: '.prop ('disabled')' – Bergi

1

También puede intentar utilizar este:

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

Obras para mí para determinar si un elemento está desactivado, mientras que otras soluciones (.disabled, .is(':disabled'), .attr('disabled'), .prop('disabled')) no

Cuestiones relacionadas