Ticket #9094 (closed bug: fixed)
Issue with jQuery 1.6: Can't uncheck checkboxes
| Reported by: | Bertrand Marron <me@…> | Owned by: | timmywil |
|---|---|---|---|
| Priority: | high | Milestone: | 1.6.1 |
| Component: | attributes | Version: | 1.6 |
| Keywords: | Cc: | ||
| Blocking: | Blocked by: |
Description
Removing the checked attribute, or setting it to false, used to uncheck checkboxes in previous versions of jQuery.
jQuery 1.6 doesn't let you.
See http://jsfiddle.net/XwmGD/.
--
Bertrand Marron
Change History
comment:1 Changed 2 years ago by timmywil
- Owner set to timmywil
- Priority changed from undecided to high
- Status changed from new to assigned
- Component changed from unfiled to attributes
comment:2 Changed 2 years ago by timmywil
- Status changed from assigned to closed
- Resolution set to fixed
Set corresponding property to false when removing boolean attributes. Fixes #9094
Changeset: 480b88ca37fb3aff4ba043298a8fb419905d3f21
comment:4 Changed 2 years ago by crescentfresh
Although this bug report only addresses boolean false, it should be noted that .attr('foo', true) is also broken. See http://jsfiddle.net/YsvyP/
comment:5 Changed 2 years ago by crescentfresh
Reported the boolean true case as a separate bug: #9103
comment:7 Changed 2 years ago by mc
1.6 version seems to have bug on uncheck checkboxes. The following code works in 1.4.3, but not 1.6. Any idea? $('input:checkbox').attr('checked', false);
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.

jQuery 1.6 removes the ambiguity between attributes and properties. The checked attribute (by spec) only sets the default value. There is no checked attribute on that checkbox to remove. You need to set the checked property to false: .prop('checked', false) or .checked = false. We understand this will break some people's code so this will be changed to how it worked previously for 1.6.1.