Я сделал script, чтобы контролировать контрольные и подчиненные флажки (автоматическая проверка и снятие отметки).
Вот мой 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 not!");
}
});
});
И вот мой 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
Посмотрите на мой простой JsFiddle, чтобы понять проблему.
РЕДАКТИРОВАТЬ 1: Как сказал Inser, проблема возникает с jQuery 1.9.2 и более. Нет проблем с jQuery 1.8.3. Странно...
РЕДАКТИРОВАТЬ 2: Inser нашел решение, используйте .prop('checked', true) вместо .attr('checked', true). Посмотрите на комментарии ниже...