Elm 中的奇怪行为 HTML select

Strange behavior in Elm HTML select

我在一个带有 HTML select 元素的小 Elm 程序中遇到了奇怪的行为。

选项最初包括一个值为 "" 的空第一项和值为 "bar"、"baz" 和 "foo" 的 3 个附加项。

当页面最初显示时,如预期的那样选择了空的第一个项目。

如果随后单击下拉菜单并从列表中选择 "bar",则下拉菜单将显示,并选择 "baz",而不是 "bar"。 Note that when an item is selected, the select element is re-rendered without the empty first option.

Here 是演示此问题的代码。

为什么会出现这种情况?我应该只在 select 选项中保留空的第一项吗?这将在下拉列表中留下一个空的 "slot"。这可以避免吗?

我最初是在 Chrome 中发现的,但它也出现在 Firefox 中,所以我怀疑我违反了 HTML 规范中的某些内容。

首先,我只想说,感谢您隔离问题并为我们提供了一个演示该问题的小型示例项目。进行了一些挖掘,但我发现 html 'selected' 属性是在页面加载时设置选定值的。所以在页面加载后更新它会导致奇怪的行为,我们将使用 'value' 代替。另一方面,页面加载时设置 'value' 会被忽略!谢谢html! ;) 来源 here

查看修改后的代码here