我已使用validator进行了检查,看起来可以接受以下代码:
<select>
<option>I don't have the 'selected' attribute</option>
</select>
此外,所有浏览器似乎都将第一个<option>
视为已被选中。
但是这个行为是否明确允许并记录在规范中?
我找到了一个指向HTML4规范的very old discussion,说:
如果没有OPTION元素具有所选属性集,则为用户代理 选择最初选择哪个选项的行为是 未定义。
HTML5改变了吗?可以理解指向规范相关部分的指针。
答案 0 :(得分:6)
现在explicitly defined by HTML5在某种程度上:
如果
multiple
属性不存在且元素的显示大小为1,那么只要option
元素的选项列表中没有select
元素,其选择性设置为true ,用户代理必须将未禁用的树顺序中的第一个option
元素的选择性(如果有)设置为true。
在您给定的标记中,multiple
上不存在size
和<select>
属性,并且其中唯一的<option>
元素未被禁用且没有明确设置selected
属性。对于非多个<select>
元素,默认显示大小为1,因此上述规则必须由浏览器应用。请注意,这与当前的浏览器行为一致,并且有充分的理由。
但是,如果在给定<option>
中没有启用<select>
元素的情况下,它仍然无法指定浏览器应执行的操作。