如何在HTML的选项标签中标记所选选项?

15

我在我的网站上使用普通的选择框和多选框。 对于已选项,我应该使用<option selected="selected">还是简单地使用<option selected>


我认为两者都可以使用,但我很想知道是否有人有详细的理由为什么要使用其中之一。我相信如果有差异,那也是微不足道的... - Rick Donohoe
3个回答

27

HTML5规范:

https://www.w3.org/TR/html5/forms.html#attr-option-selected

selected属性是一个布尔属性。

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

元素上存在布尔属性表示它的值为true,不存在则表示它的值为false。

如果存在该属性,则其值必须为空字符串或与属性规范名称(大小写不敏感),没有前导或尾随空格的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>是无效的XHTML(但是有效的HTML),而其他替代方案不够易读。否则,只需使用<option selected>,因为它更短。


3
兄弟,为什么你的得票不多呢?让我来给你一张有力的投票。 :-) - Muhammad

3
根据W3C的正确方法,将选择“selected”,如此处所述: http://www.w3.org/TR/html-markup/option.html#option Quentin:这个问题与复选框无关,因此不会出现重复。 (相同的答案,不同的顺序,以避免对于那些无法阅读完整帖子的人而言“不是答案,而是评论”的评论)

2
这更像是一条注释,而不是一个答案。 - MichaC

3
如果您想在下拉列表中设置多个选项,请不要忘记将属性multiple添加到select上,并将[]添加到select的名称中,否则它将无法工作。

<select name="mega_select[]" multiple>
  <option value="some" selected="selected">some</option>
  <option value="value" selected="selected">value</option>
  <option value="non">non</option>
</select>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接