2009-05-27 9 views
10

Ho il seguente codice jquery che funziona correttamente.come eseguire eventi quando una casella di controllo è selezionata/deselezionata in jquery

$('#onlyTwo').click(function() { 
       $("#textarea3").attr("disabled", true); 
       $("#textarea4").attr("disabled", true); 
       $("#radio3").attr("disabled", true); 
       $("#radio4").attr("disabled", true); 
       return true; 
      }); 

Ciò rende alcuni campi disabilitati quando si fa clic sulla casella di controllo 'onlyTwo'. Come posso fare questi campi enabed nuovo quando casella di controllo 'onlyTwo' non è selezionata ...

Fondamentalmente voglio sapere come scoprire se una casella è selezionata o meno

risposta

18

o

$('#onlyTwo').click(function(){ 
    var stuff = $("#textarea3, #textarea4, #radio3, #radio4"); 
    stuff.attr("disabled", $(this).is(":checked")); 
}); 
+0

if ($ (this) .is (" : spuntato ")} doveva essere cambiato in if ($ (this) .is (": checked ")) ma a parte questo funziona! Grazie! – n00bstackie

2
$('#onlyTwo').click(function() { 
    var elements = ['textarea3', 'textarea4', 'radio3', 'radio4']; 
    var checked = $(this).attr('checked'); 

    jQuery.each(elements, function(element) { 
     if (checked) { 
     $('#'+element).attr('disabled', true); 
     } else { 
     $('#'+element).removeAttr('disabled'); 
     } 
    }); 
}) 

Quello è un soluzione semplice per attiva l'attributo disabilitato su tutti gli elementi che desideri quando è selezionato $('#onlyTwo').

Problemi di array corretti, lol questo era pieno di piccoli bug.

+0

wow, è fantastico. dove stai controllando 'toggle'? inoltre, sto ottenendo un errore di sintassi su ')};' Errore di sintassi – n00bstackie

+0

quando si chiude la seconda funzione. nella penultima riga del codice che hai postato – n00bstackie

+0

Ricevo un 'array non definito Errore riga 40' ora in fase di esecuzione :( – n00bstackie

5
$('#onlyTwo').change(function() { 
    $('.disableMe').attr('disabled', $(this).is(':checked')); 
}); 

quindi è necessario aggiungere classe 'disableMe' a tutti gli ingressi, textarea, seleziona ... che si desidera disattivare.

Problemi correlati