在select
上使用以下代码
<select name="province" id="province" required="required">
<optgroup label="Provinces">
<option value="Alberta">Alberta</option>
<option value="British Colombia">British Colombia</option>
<option value="Manitoba">Manitoba</option>
<option value="New Brunswick">New Brunswick</option>
<option value="Newfoundland and Labrador">Newfoundland and Labrador</option>
<option value="Nova Scotia">Nova Scotia</option>
<option value="Ontario" selected="selected">Ontario</option>
<option value="Prince Edward Island">Prince Edward Island</option>
<option value="Quebec">Quebec</option>
<option value="Saskatchewan">Saskatchewan</option>
</optgroup>
<optgroup label="Territories">
<option value="Northwest Territories">Northwest Territories</option>
<option value="Nunavut">Nunavut</option>
<option value="Yukon">Yukon</option>
</optgroup>
</select>
我需要有与指南所要求的选项相同的值。这段代码运行良好,但没有通过W3C验证:
具有
required
属性但没有multiple
属性且大小为1的select
元素必须具有子option
元素。
这个问题的解决方案是什么?
发布于 2014-03-07 06:44:31
请使用以下内容
<option value="">Choose</option>
将上述系列追加为第一个选项
发布于 2015-08-04 12:13:52
这里是W3C HTML Checker (也称为验证器)的维护者。
现在看来,您必须使用不间断的空格来传递验证器:
<option value=""> </option>
是啊,我不太确定我什么时候在收银台改的。我认为我在这几年中没有做任何更改,但不管怎样,检查器在这方面符合超文本标记语言规范,因为如果您转到https://html.spec.whatwg.org/multipage/forms.html#the-option-element并阅读该部分标题中的内容模型小节,您将看到:
如果元素没有标签属性,则为
:不是元素间空格的文本。
换言之,超文本标记语言本质上将不间断的空格字符视为文本,而不是空格字符,因此将其放入option
元素中将使option
元素成为“非空”(就规范而言)。
因此,执行<option value=""> </option>
并不是一种真正的技巧;相反,它是使option
非空的一种完全合理的方法(同样,就规范而言)。
发布于 2015-04-15 22:20:12
有时你真的只想有一个空白的选项。您过去只能插入一个空格,w3c验证器会接受它。这在过去是有效的:
<option value=""> </option>
现在看来,您必须使用不间断的空格来传递验证器:
<option value=""> </option>
https://stackoverflow.com/questions/22237658
复制相似问题