Mam bardzo prosty wymóg dla mojego jQuery: aby sprawdzić zestaw skrzynek, jeśli przycisk jest zaznaczony, i wyczyścić je wszystkie, jeśli inny jest zaznaczony.jQuery, aby zaznaczyć i odznaczyć pola wyboru tylko pożary raz
JQuery działa, ale działa tylko raz - to znaczy, jeśli kliknę, aby je wszystkie sprawdzić (wszystkie pola zaznacz), a następnie kliknij, aby je wyczyścić (wszystkie pola są wyczyszczone), a następnie ponownie kliknij, aby je wszystkie sprawdzić - tam nie ma wpływu. Podobnie, jeśli ręcznie usuń zaznaczenie niektórych pól, a następnie kliknij, aby zaznaczyć ponownie wszystkie, nie ma efektu.
jQuery
$('#all').on('change', function() {
if (!$(this).is(':checked')) {
$('.country').attr('checked', false);
} else {
$('.country').attr('checked', true);
}
});
$('#none').on('change', function() {
if (!$(this).is(':checked')) {
$('.country').attr('checked', true);
} else {
$('.country').attr('checked', false);
}
});
HTML
<div class="subselect">
<input type="radio" class="TLO" name="radio1" id="all" />Check All
<br />
<input type="radio" class="TLO" name="radio1" id="none" />Clear All
<br />
</div>
<br />
<br />
<div class="cselect" id="countries">
<input type="checkbox" class="country" />1
<br />
<input type="checkbox" class="country" />2
<br />
<input type="checkbox" class="country" />3
</div>
jsFiddle http://jsfiddle.net/vsGtF/1/
Wykorzystanie '.prop()' zamiast '.at tr() '. – David