.prop("selected", true) does not work as expected in IE11 #2732

kennyk-peplink opened this Issue Nov 19, 2015 · 8 comments


None yet

4 participants


By selecting option with .prop("select", true), the behavior is not as expected under IE11

Testing with Firefox / Chrome / Safari, the behavior should be consistent,
the following example should have "Two" being selected:


In IE, however, the result is "Four".

You may comment out Line 11, 12, and/or 14 for more test cases with expected result (last prop being selected) in other browsers, but IE11.


To remove a red herring here, the special characters in the values don't change the outcome. Here is a simpler case, with the last selection changing the text to show that it was able to select the right element: http://jsfiddle.net/zksm1o5q/5/

Here's a bare DOM example without jQuery that exhibits the same problem: http://jsfiddle.net/15ytbys8/


This is a browser bug, but perhaps we should work around it in a propHook that sets all other option elements' selected values to false?

@timmywil timmywil added the Attributes label Nov 19, 2015

Does that fix the problem? Is it only a bug with options that exist in the select already, or would we also need to guard against ones appended from elsewhere?

This seems to work on Edge so it's only IE11 (and older IEs) affected.

In any event it seems like that might really be a performance killer, especially on selects with a lot of options. I guess it could be limited by a feature detect to only IE and only when changing the selected property, but silently trying to cure it might lead to a real performance trap. I'm also wondering if properties like readonly or disabled misbehave the same way?


What about setting selectedIndex on the select element instead of setting all the selected properties?


That wouldn't be a big perf hit – or code size hit – and it seems to work: http://jsfiddle.net/timmywil/15ytbys8/1/.


I don't think disabled or readonly would have the same problem because multiple options can be disabled and readonly.


Yeah if that works it sounds pretty good. So if we're setting selected on an option and it's already in a select that is not multiple, set the selectedIndex property. #youmightnotneedjquery

@timmywil timmywil modified the milestone: 3.0.1, 3.0.0 Jan 14, 2016
@timmywil timmywil self-assigned this Jan 15, 2016
@timmywil timmywil added a commit to timmywil/jquery that referenced this issue Jan 15, 2016
@timmywil timmywil Attributes: fix setting selected on an option in IE<=11
Fixes gh-2732
@timmywil timmywil closed this in 780cac8 Jan 19, 2016
mgol commented Mar 6, 2016

This is a non-breaking change; should we backport it to 1.12.2 & 2.2.2?

@mgol mgol removed the Has Pull Request label Mar 6, 2016
@timmywil timmywil modified the milestone: 1.12.2/2.2.2, 3.0.0 Mar 7, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment