Side navigation
#10870 closed bug (fixed)
Opened November 23, 2011 09:26AM UTC
Closed March 05, 2012 05:54PM UTC
Incorrect behaviour of $.removeAttr("selected")
Reported by: | smartmaxim@gmail.com | Owned by: | timmywil |
---|---|---|---|
Priority: | high | Milestone: | 1.7.2 |
Component: | attributes | Version: | 1.7 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
Calling $.removeAttr("selected") on the option that doesn't have "selected" attribute, changes the selection.
Example: http://jsfiddle.net/HHDpK/1/
Based on http://stackoverflow.com/questions/8226702/jquery-removeattrselected-changes-selected-option
Attachments (0)
Change History (10)
Changed November 23, 2011 10:30AM UTC by comment:1
component: | unfiled → attributes |
---|---|
priority: | undecided → low |
resolution: | → worksforme |
status: | new → closed |
Changed November 23, 2011 10:35AM UTC by comment:2
Do I understand you correctly that $.removeAttr() is not backward compatible since 1.6?
Sure I'm going to use $.prop() in a new code, but there is plenty already written.
Changed November 23, 2011 02:56PM UTC by comment:3
resolution: | worksforme |
---|---|
status: | closed → reopened |
Do NOT remove native properties with .removeProp. They cannot be recreated. Instead, we recommend:
$elems.prop('selected', false); $elems.prop('selected', true);
Anyway, with the boolHook, this should be working. In removeAttr, we are setting attributes to empty string before removal. Unfortunately, the mere presence of a boolean attribute indicates true for the property and sets all other options' selected properties to false, and then removes it.
Changed November 23, 2011 02:56PM UTC by comment:4
milestone: | None → 1.7.2 |
---|---|
owner: | → timmywil |
status: | reopened → assigned |
Changed November 23, 2011 02:56PM UTC by comment:5
Changed January 20, 2012 03:28PM UTC by comment:8
priority: | low → high |
---|
Changed February 09, 2012 05:55AM UTC by comment:9
Just check : It caused by #9699 (setting first, then removal) .
Changed March 05, 2012 05:54PM UTC by comment:10
resolution: | → fixed |
---|---|
status: | assigned → closed |
Do not set boolean attributes to empty string on removal. Fixes #10870. +0 bytes compressed
Changeset: d3320462df1253196e61b2daadc3cdfe1b4c3771
Thanks for submitting a ticket to the jQuery bug tracker. Please note that switching over to using .prop() for such cases (and .removeProp()) or the property removal should solve the problem you're running into. See here (jsFiddle from the answer on your SO post): http://jsfiddle.net/HHDpK/3/.