【发布时间】:2014-08-19 19:35:07
【问题描述】:
我尝试使用<input type="file" ...> 元素的accept 属性将文件打开对话框限制为RTF 文件。 Internet 资源表明此属性可以包含以逗号分隔的扩展名和 MIME 类型列表。它确实有效,但存在验证问题:
此 HTML5 代码
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<title>Test</title>
</head>
<body>
<form>
<input type="file" accept=".rtf, text/rtf, application/rtf, text/richtext" />
<input type="submit"/>
</form>
</body>
</html>
使用HTML5 validator 导致此错误:
属性的错误值 .rtf、text/rtf、application/rtf、text/richtext 接受元素输入:需要一个标记字符或 / 但看到 , 而是。
这是 W3C 验证器的实验性 HTML5 一致性检查器中的错误吗?
【问题讨论】:
-
我的第一个想法是尝试不带空格。但另外,w3 说:“使用实验性功能:HTML5 一致性检查器。验证器使用实验性功能检查您的文档:HTML5 一致性检查器。此功能为您提供方便,但请注意它可能不可靠, 或者不完全跟上一些尖端技术的最新发展。如果您发现此功能有任何问题,请报告。谢谢。” 所以这是一个错误不是不可想象的。
-
也许 .rtf 不是有效的媒体类型?我在有效媒体类型列表中找不到它:iana.org/assignments/media-types/media-types.xhtml
-
@jls 该规范允许您使用扩展以及 mime 类型 - 请参阅 stackoverflow.com/a/14994849/80901
-
这似乎是验证器中的一个错误。它不接受文件扩展名。幸运的是,验证器本身包含一个link to report issues。
-
@GolezTrol HTML5 验证器的错误跟踪器位于 bugzilla.validator.nu/enter_bug.cgi - 因为它需要一个帐户,我稍后会报告它
标签: html validation file-upload