2

在 IE8 中使用带有下拉框的淘汰赛 2.2.0 时,我们收到错误消息。在 IE 8 中,数组的长度显示为 2 而不是 1。它在 IE9 及更高版本和其他浏览器中运行良好。

我已经把代码放在这个fiddle中。

UI 代码如下所示:

<script>
   function EmailDomain(text, value) {
       this.DisplayText = text;
       this.Value = value;
   }
   function VM(){
       self.EmailDomains = ko.observableArray([
            new EmailDomain("aaa.com", "aaa.com"),
        ]);

       self.SelectedEmailDomain = ko.observable(self.EmailDomains()[0]);
   }
</script>

<select data-bind="options: EmailDomains, optionsText: 'DisplayText', value: SelectedEmailDomain"></select>

我收到错误的屏幕

4

1 回答 1

3

还没有机会对此进行测试,因为我在这台机器上没有 IE8,但这可能是因为您的阵列末尾有一个意外的逗号,这是不必要的?

self.EmailDomains = ko.observableArray([
    new EmailDomain("aaa.com", "aaa.com") // Removed: ,
]);

当逗号不合适时,IE 会做一些疯狂的事情,所以值得一试!

于 2013-01-04T10:27:27.687 回答