Используйте .prop()
и, что более важно, не заключайте в кавычки логические значения.
Для логических атрибутов чистое существование имеет значение. checked=""
, checked="no"
, checked="false"
все приводит к проверке элемента.
Чтобы отменить проверку элемента через атрибут, вам нужно использовать .removeAttr('checked')
.
Однако вы можете использовать свойство , которое является действительным логическим значением. Так что .prop('checked', true_or_false)
будет делать то, что вы хотите. На самом деле вы могли бы даже использовать .attr('checked', true_of_false)
, поскольку jQuery 1.6.1, но использование .prop()
вместо .attr()
немного быстрее, поскольку не нужно проверять, действительно ли это свойство, которое вы пытаетесь установить вместо атрибута.