Не уверен, что это баг.
Вы неправильно используете Jquery и Javascript. Функция attr (
api.jquery.com/attr/ ) предназначена для изменения HTML-аттрибута элемента, а не изменения состояния чекбокса. Если вы хотите снять/установить галочку, есть определенный в стандарте DOM способ (
www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-30233917 ):
> checked of type boolean
> When the type attribute of the element has the value «radio» or «checkbox», this represents the current state of the form control, in an interactive user agent. Changes to this attribute change the state of the form control, but do not change the value of the HTML checked attribute of the INPUT element.
Поскольку других способов поменять сосотояние чекбокса в спецификациях HTML и DOM не указано, это значит, что единственный официальный способ — использовать свойство checked у DOM-объекта…
Очевидно, что некоторые браузеры переносят манипуляции с аттрибутами на чекбокс. Но это очень хлипкий и ненадежный способ и не всегда работает. Видимо, делая remoevAttr, вы что-то ломаете. Чтобы проверить, установлена ли галочка, пишите:
if ($element[0].checked)
Чтобы установить состояние чекбокса, пишите:
$element[0].checked = true;
Также могу дать совет, не читайте перед обедом советск^W статей с Хабра вроде «jQuery для чайников», написанных школьниками, а читайте официальную документацию или хотя бы книги от нормальных авторов, разбирающихся в предмете. Конечно, спецификация не ответит вам на любой вопрос, но она хотя бы даст отправную точку для поиска ответа.