Commit 9fe051d5 authored by Oleg's avatar Oleg

Attrs: Force reflow in select value setter

When new option element is added to select box we need to force reflow
of newly added node in order to workaround delay of initialization props.

try...catch statment is required for bug isolation

Fixes #2252
parent 92cbf536
......@@ -118,21 +118,37 @@ jQuery.extend({
set: function( elem, value ) {
var optionSet, option,
options = elem.options,
values = jQuery.makeArray( value ),
i = options.length;
while ( i-- ) {
option = options[ i ];
if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) {
optionSet = true;
if ( jQuery.valHooks.option.get( option ) === value ) {
// Support: IE6
// When new option element is added to select box we need to
// force reflow of newly added node in order to workaround delay
// of initialization properties
try {
option.selected = optionSet = true;
} catch ( _ ) {
// Will be executed only in IE6
option.scrollHeight;
}
} else {
option.selected = false;
}
}
// force browsers to behave consistently when non-matching value is set
// Force browsers to behave consistently when non-matching value is set
if ( !optionSet ) {
elem.selectedIndex = -1;
}
return values;
return options;
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment