2010-08-25 8 views

risposta

42

Si può fare in questo modo:

$("#checkBoxID").click(function() { 
    $("#buttonID").attr("disabled", !this.checked); 
}); 

In questo modo quando selezionato, e disabilita di nuovo se si deseleziona. In jQuery .attr("disabled", bool) prende un valore booleano, quindi è possibile mantenere questo piuttosto breve utilizzando la proprietà DOM this.checked della casella di controllo.

+6

+1 per la negazione del booleano, è una tecnica semplice che non viene utilizzata abbastanza, IMO. Oh, e non usando * .is (": checked") *, anche ;-) –

+1

A partire da jQuery 1.6 si consiglia di usare il metodo .prop() per questo invece (http://api.jquery.com/attr /). – Eirik

2
$("#yourcheckboxid").click(function() { 
    var checked_status = this.checked; 
    if (checked_status == true) { 
     $("#yourbuttonid").removeAttr("disabled"); 
    } else { 
     $("#yourbuttonid").attr("disabled", "disabled"); 
    } 
}); 
Problemi correlati