HTML5是否明确允许<select>没有选择<option>?</option> </select>

时间:2013-06-26 15:49:20

标签: html5

我已使用validator进行了检查,看起来可以接受以下代码:

<select>
    <option>I don't have the 'selected' attribute</option>
</select>

此外,所有浏览器似乎都将第一个<option>视为已被选中。

但是这个行为是否明确允许并记录在规范中?

我找到了一个指向HTML4规范的very old discussion,说:

  

如果没有OPTION元素具有所选属性集,则为用户代理   选择最初选择哪个选项的行为是   未定义。

HTML5改变了吗?可以理解指向规范相关部分的指针。

1 个答案:

答案 0 :(得分:6)

现在explicitly defined by HTML5在某种程度上:

  

如果multiple属性不存在且元素的显示大小为1,那么只要option元素的选项列表中没有select元素,其选择性设置为true ,用户代理必须将未禁用的树顺序中的第一个option元素的选择性(如果有)设置为true。

在您给定的标记中,multiple上不存在size<select>属性,并且其中唯一的<option>元素未被禁用且没有明确设置selected属性。对于非多个<select>元素,默认显示大小为1,因此上述规则必须由浏览器应用。请注意,这与当前的浏览器行为一致,并且有充分的理由。

但是,如果在给定<option>中没有启用<select>元素的情况下,它仍然无法指定浏览器应执行的操作。