“选项”标签的“selected”属性中可以显示哪些值?

我有一些类似于以下的标记:

<select>
  <option selected="selected">Apple</option>
  <option selected="">Orange</option>
</select>

在这种情况下,“橙色”显示为选定的项目。 我会期望使selected属性为空将撤消其效果。 有没有一种方法可以写出来,而不用简单地将属性留出?


不同的浏览器可能会以不同的方式处理该属性 根据MSDN文档(针对Internet Explorer):

要选择HTML中的项目,不需要将SELECTED属性的值设置为true。 SELECTED属性的存在将其值设置为true。

在firefox和Safari中,这确实起作用:

<option selected='false' />

通过查看HTML4的官方WC3标准,我可以看出,支持的情况只是:

<option selected='selected' />

您将要么选择性地发射该属性,要么使用JavaScript来控制最初选择的项目。


HTML5规范

https://www.w3.org/TR/html51/sec-forms.html#the-option-element

选定的内容属性是一个布尔属性。

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes:

元素上布尔属性的存在表示真值,缺少属性表示假值。

如果该属性存在,则其值必须是空字符串,或者是该属性规范名称的ASCII不区分大小写匹配的值,且不带前导或尾随空格。

结论

以下是有效的,等同的和真实的

<option selected />
<option selected="" />
<option selected="selected" />
<option selected="SeLeCtEd" />

以下内容无效

<option selected="0" />
<option selected="1" />
<option selected="false" />
<option selected="true" />

缺少该属性是唯一有效的false语法:

<option />

建议

如果您关心编写有效的XHTML,请使用selected="selected" ,因为<option selected>是无效的,其他替代方法的可读性较差。 否则,只需使用<option selected>因为它更短。


XHTML中所选属性的唯一允许值是“ 选中 ”的,所以如果您希望您的标记符合XHTML标准,并且跨所有浏览器工作,则只有这样才能使其不被选中

链接地址: http://www.djcxy.com/p/56031.html

上一篇: What values can appear in the "selected" attribute of the "option" tag?

下一篇: Why is a newly created checkbox checked when I set checked to false?