Sob*_*fly 20 html-select w3c-validation
使用以下代码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>
Run Code Online (Sandbox Code Playgroud)
我需要的值与指南所要求的选项相同.此代码工作正常,但未通过W3C验证:
一个
select带有元素required属性,没有multiple属性,其大小为1,必须有一个子option元素.
这个问题的解决方案是什么?
Pan*_*ool 31
使用以下内容
<option value="">Choose</option>
Run Code Online (Sandbox Code Playgroud)
将上述系列作为第一个选项附加
sid*_*ker 20
这里是W3C HTML Checker(aka验证器)的维护者.
现在看来你必须使用一个不间断的空间来传递验证器:
<option value=""> </option>
是的,我不确定我何时在检查器中更改了它.我认为我在几年内没有改变任何东西,但无论如何,检查器符合HTML规范,因为如果你去https://html.spec.whatwg.org/multipage/forms.html #the-option-element并阅读该部分头部的内容模型子部分,您将看到:
如果元素没有label属性:不是元素间空格的文本.
在HTML中,哪些字符可以是inter-element whitespace字符的定义仅包括U + 0020(空格),制表符,U + 000A(LF),U + 000C FORM FEED和U + 000D(CR).
换句话说,HTML基本上将非中断空格字符视为Text而不是空格字符 - 因此将其放在option元素中会使该option元素"非空"(就规范而言).
所以,做<option value=""> </option>不是真正的黑客; 相反,它是一种非常合理的方式(同样,就规范而言)option是非空的.
Rya*_*yan 13
有时你真的只想要一个空白选项.您曾经能够只插入一个空格,而w3c验证器会接受它.这曾经工作:
<option value=""> </option>
Run Code Online (Sandbox Code Playgroud)
现在看来你必须使用一个不间断的空间来传递验证器:
<option value=""> </option>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31409 次 |
| 最近记录: |