哪些值可以出现在“选择” “选项的属性”标签?

StackOverflow https://stackoverflow.com/questions/1033944

  •  06-07-2019
  •  | 
  •  

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

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

在这种情况下,“橙色”是指“橙色”。显示为所选项目。我原本希望将 selected 属性设置为空白会撤消其效果。有没有办法写这个而不是简单地将属性遗漏?

有帮助吗?

解决方案

不同的浏览器可能会以不同方式处理此属性根据MSDN文档(适用于Internet Explorer):

  

要选择HTML中的项目,不是   必须设置的值   SELECTED属性为true。仅仅   存在SELECTED属性集   它的价值是真的。

在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 =&quot; selected&quot; ,因为&lt; option selected&gt; 无效,而其他选项的可读性较差。否则,只需使用&lt; option selected&gt; ,因为它更短。

XHTML中所选属性的唯一允许值是“已选择”因此,如果您希望您的标记符合XHTML并且可以在所有浏览器中使用,那么将其标记为未选中的唯一选择

不,所选属性的存在告诉浏览器它是所选项目。引号内的任何内容都会被忽略。

编辑:你可以做什么(使用Javascript)查找带有selected =&quot;&quot;的选项标签,并从中删除所选属性。

在HTML(与XHTML相反)中,一个简单的选择的属性,没有任何价值,可以正常工作:

<option selected>Apple</option>
<option>Orange</option>

在XHTML(包括XHTML5)中,您需要一个值,该值也应该是 selected

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

这在HTML中也可以正常使用。

这通常是(X)HTML中布尔值的情况。将它们设置为false的方法是完全省略它们。设置 true false 的值可能有效,但不是标准的。

请注意,对于选项列表,默认情况下会选择第一个选项,因此在这种情况下根本不需要这样做。

根据 w3schools ,您应该将其设置为:selected =&quot;选择&QUOT ;.这会告诉您最初选择了哪个选项,并允许您稍后通过脚本进行设置。

除了“已选择”之外,没有任何其他有效值。对于该属性。 ( http://www.w3schools.com/TAGS/att_option_selected.asp

最好从Javascript设置selectElement.selectedIndex属性,或者完全删除属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top