Index: lib/html/templates/html/dart2js/impl_SelectElement.darttemplate |
diff --git a/lib/html/templates/html/dart2js/impl_SelectElement.darttemplate b/lib/html/templates/html/dart2js/impl_SelectElement.darttemplate |
index 59635205dd7ce306ca1326e5ab8fa1a0a17f014f..dd4f05f81e0260f2cdd0cf72870fdbccda7928f0 100644 |
--- a/lib/html/templates/html/dart2js/impl_SelectElement.darttemplate |
+++ b/lib/html/templates/html/dart2js/impl_SelectElement.darttemplate |
@@ -5,7 +5,18 @@ |
class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { |
$!MEMBERS |
+ // Override default options, since IE returns SelectElement itself and it |
+ // does not operate as a List. |
+ List<OptionElement> get options() { |
+ return this.elements.filter((e) => e is OptionElement); |
+ } |
+ |
List<OptionElement> get selectedOptions() { |
- return this.options.filter((o) => o.selected); |
+ // IE does not change the selected flag for single-selection items. |
+ if (this.multiple) { |
+ return this.options.filter((o) => o.selected); |
+ } else { |
+ return [this.options[this.selectedIndex]]; |
+ } |
} |
} |