首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >选择必需属性时出现HTML5验证错误

选择必需属性时出现HTML5验证错误
EN

Stack Overflow用户
提问于 2014-03-07 06:36:50
回答 3查看 37.7K关注 0票数 21

select上使用以下代码

代码语言:javascript
复制
    <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元素。

这个问题的解决方案是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-07 06:44:31

请使用以下内容

代码语言:javascript
复制
<option value="">Choose</option>

将上述系列追加为第一个选项

  • 被认为有效,因为第一个子元素没有内容。
票数 31
EN

Stack Overflow用户

发布于 2015-08-04 12:13:52

这里是W3C HTML Checker (也称为验证器)的维护者。

现在看来,您必须使用不间断的空格来传递验证器:

<option value="">&nbsp;</option>

是啊,我不太确定我什么时候在收银台改的。我认为我在这几年中没有做任何更改,但不管怎样,检查器在这方面符合超文本标记语言规范,因为如果您转到https://html.spec.whatwg.org/multipage/forms.html#the-option-element并阅读该部分标题中的内容模型小节,您将看到:

如果元素没有标签属性,则为

:不是元素间空格的文本。

换言之,超文本标记语言本质上将不间断的空格字符视为文本,而不是空格字符,因此将其放入option元素中将使option元素成为“非空”(就规范而言)。

因此,执行<option value="">&nbsp;</option>并不是一种真正的技巧;相反,它是使option非空的一种完全合理的方法(同样,就规范而言)。

票数 23
EN

Stack Overflow用户

发布于 2015-04-15 22:20:12

有时你真的只想有一个空白的选项。您过去只能插入一个空格,w3c验证器会接受它。这在过去是有效的:

代码语言:javascript
复制
<option value=""> </option>

现在看来,您必须使用不间断的空格来传递验证器:

代码语言:javascript
复制
<option value="">&nbsp;</option>
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22237658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档