我有一些类似于以下内容的标记:
<select>
<option selected="selected">Apple</option>
<option selected="">Orange</option>
</select>
在这种情况下,“橙色”显示为所选项目。我希望将selected
属性设置为空白可以撤消其效果。有没有办法写这个而不是简单地将属性遗漏?
答案 0 :(得分:31)
不同的浏览器可能会以不同方式处理此属性根据MSDN文档(适用于Internet Explorer):
要选择HTML中的项目,不是 必须设置的值 SELECTED属性为true。仅仅 存在SELECTED属性集 它的价值是真的。
在Firefox和Safari中,这确实有效:
<option selected='false' />
通过查看HTML4的官方WC3标准我可以看出,支持的案例只是:
<option selected='selected' />
您需要选择性地发出属性,或者使用javascript来控制最初选择的项目。
答案 1 :(得分:26)
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>
,因为它更短。
答案 2 :(得分:7)
XHTML中所选属性的唯一允许值是“已选择”,因此,如果您希望您的标记符合XHTML并且在所有浏览器中工作,则将其取消是唯一的选择,使其无法选择< / p>
答案 3 :(得分:4)
不,所选属性的存在告诉浏览器它是所选项目。引号内的任何内容都会被忽略。
编辑:你可以做什么(使用Javascript)查找带有selected =“”的选项标签,并从中删除所选属性。
答案 4 :(得分:2)
在HTML(与XHTML相对)中,一个简单的selected
属性,没有任何价值,可以正常工作:
<option selected>Apple</option>
<option>Orange</option>
在XHTML(包括XHTML5)中,您需要一个值,该值也应该是selected
:
<option selected="selected">Apple</option>
<option>Orange</option>
这在HTML中也可以正常使用。
这通常是(X)HTML中布尔值的情况。将它们设置为false的方法是完全省略它们。设置true
和false
的值可能有效,但不是标准的。
请注意,对于选项列表,默认情况下会选择第一个选项,因此在这种情况下根本不需要这样做。
答案 5 :(得分:0)
根据w3schools,您应该将其设置为:selected =“selected”。这会告诉您最初选择了哪个选项,并允许您稍后通过脚本进行设置。
答案 6 :(得分:0)
除该属性的“已选择”外,没有任何其他有效值。 (http://www.w3schools.com/TAGS/att_option_selected.asp)
答案 7 :(得分:-2)
最好从Javascript设置selectElement.selectedIndex属性,或者完全删除属性。