Ho creato uno script per controllare le caselle di controllo master & slave (controllo e deselezione automatici).Seleziona e deseleziona la casella di controllo Dinamicamente con jQuery: bug?
Ecco il mio JS:
$(document).ready(function() {
$('#myCheck').click(function() {
$('.myCheck').attr('checked', false);
});
$('.myCheck').click(function() {
if ($('.myCheck').is(':checked')) {
$('#myCheck').attr('checked', false);
} else {
$('#myCheck').attr('checked', true); // IT DOESN'T WORK, WHY ?
alert("Checkbox Master must be checked, but it's not!");
}
});
});
Ed ecco il mio HTML:
<input type="checkbox" id="myCheck" checked="checked" /> Checkbox Master<br />
<input type="checkbox" class="myCheck" value="1" /> Checkbox Slave 1<br />
<input type="checkbox" class="myCheck" value="1" /> Checkbox Slave 2
Guardate il mio semplice JsFiddle per capire il problema.
MODIFICA 1: Come Inser ha detto, il problema si verifica con jQuery 1.9.2 e oltre. Nessun problema con jQuery 1.8.3. Strano ...
EDIT 2: Inser trovato la soluzione, utilizzare .prop ('controllato', true) invece .attr ('controllato', true). Guarda i commenti qui sotto ...
Qual è la domanda? –
'Guardando il tuo semplice JsFiddle per capire il problema! Ma myaaan !! non riesco a capire cosa stai cercando di fare ... quindi quello che vuoi acutamente – bipen
Ok, scusa ragazzi, pensavo che il mio codice fosse chiaro ... Infatti, una volta cliccato sul Master Checkbox, tutti i Checkbox Slave devono essere deselezionati: funziona bene. D'altra parte, una volta deselezionata la casella Checkbox Slave e nessun altro Checkbox Slave selezionato, CheckBox Master deve essere controllato automaticamente. Ci scusiamo per questo, spero che capirai il mio problema ora ... –