W3C 验证器错误:仅当输入类型为时才允许使用属性占位符

Posted

技术标签:

【中文标题】W3C 验证器错误:仅当输入类型为时才允许使用属性占位符【英文标题】:W3C validator error: Attribute placeholder is only allowed when the input type is 【发布时间】:2015-06-02 16:39:17 【问题描述】:

给定 html 文档

<!DOCTYPE html> 
<html>
  <head>
    <title>Title</title>
  </head> 
  <body>
    <form> 
      <input type="email" placeholder="E-Mail"/>
    </form>  
  </body>
</html>

W3C validator (v1.3) 给出以下错误消息:

第 8 行,第 48 列:属性 placeholder 仅在输入类型为电子邮件、号码、密码、搜索、电话、文本或 url 时才允许。

为什么?

【问题讨论】:

有一些文档htmlgoodies.com/html5/tutorials/…。您的代码中似乎一切正常。 @nicael:您介意详细说明一下吗? @Alexey:感谢您的链接。我只是想知道为什么验证器将此 HTML 标记为不正确。 我已经在 Chrome、Firefox 和 IE 中尝试过你的代码。在所有三种情况下,占位符都在那里(在输入字段中)。也许验证器中存在一些错误? @Alexey 非常感谢您的努力!事实上,这似乎是验证器中的一个错误,因为它现在显然已修复。 【参考方案1】:

这似乎是验证器中的一个错误。

http://validator.w3.org/ 和 http://validator.w3.org/nu/ 这两个验证器都报告说,placeholder 属性“仅在输入类型为 e-mail […] 时才允许使用”。 但是,HTML5 输入类型称为email,而不是e-mail(如果使用type="e-mail",两个验证器都能正确识别)。

不看代码,我猜当使用placeholder 时,他们会检查e-mail 而不是email。它适用于所有其他允许的输入类型。

【讨论】:

谢谢。现在似乎在validator.w3.org 和validator.w3.org/nu 中都已修复。 @user2286693:是的,没错。 fix is mentioned on the mailing list(和also in another thread)。

以上是关于W3C 验证器错误:仅当输入类型为时才允许使用属性占位符的主要内容,如果未能解决你的问题,请参考以下文章

仅当其他 simple_form 字段等于某个输入时才验证存在?

仅当用户从 Stripe 成功购买时才允许他们进行有限访问

W3C 验证和 Vue 的 HTML 绑定语法

输入类型不是“提交”时的 HTML5 验证

Javascript regexp - 仅当第一个字符不是星号时

仅当它是所需类型时才绑定到接口(否则使用回退)?