Я думаю, что это может помочь:
<Ч />
Сначала прочтите все спецификации от Microsoft и W3.org.
Вы увидите, что установка фактического элемента флажка должна выполняться в СОБСТВЕННОСТИ ЭЛЕМЕНТА, а не в пользовательском интерфейсе или атрибуте.
$('mycheckbox')[0].checked
Во-вторых, вы должны знать, что проверенный атрибут ВОЗВРАЩАЕТ строку "true", "false"
Почему это важно? Потому что вам нужно использовать правильный тип. Строка, а не логическое значение. Это также важно при разборе вашего флажка.
$('mycheckbox')[0].checked = "true"
if($('mycheckbox')[0].checked === "true"){
//do something
}
Вы также должны понимать, что «проверенный» АТРИБУТ предназначен для первоначальной установки значения флажка. Это мало что делает, когда элемент отображается в DOM. Представьте себе, как это работает, когда веб-страница загружается и анализируется изначально.
Я остановлюсь на предпочтениях IE: <input type="checkbox" checked="checked"/>
Наконец, главный аспект путаницы для флажка заключается в том, что элемент пользовательского интерфейса флажка не совпадает со значением свойства элемента. Они не коррелируют напрямую.
Если вы работаете в .net, вы обнаружите, что пользователь, «проверяющий» флажок, никогда не отражает фактическое значение bool, переданное контроллеру.
Для настройки пользовательского интерфейса я использую $('mycheckbox').val(true);
и $('mycheckbox').attr('checked', 'checked');
<ч />
Короче говоря, для установленного флажка вам нужно:
Начальный ДОМ: <input type="checkbox" checked="checked">
Свойство элемента: $('mycheckbox')[0].checked = "true";
Пользовательский интерфейс: $('mycheckbox').val(true);
и $('mycheckbox').attr('checked', 'checked');