Chrome 63+会在输入类型密码和非唯一ID时抛出[DOM]错误

时间:2017-12-14 05:01:51

标签: html html5 google-chrome dom

从Chrome 63中,引发以下错误:

  

[DOM]找到2个具有非唯一ID的元素#a :(更多信息:https://goo.gl/9p2vKq

https://jsfiddle.net/arnabgh/jz186qxe/

<input type="password">
<input id="a">
<input id="a">

使用输入类型密码时是否有任何特殊验证,从Chrome 63开始?

3 个答案:

答案 0 :(得分:20)

是的,有;这就是你看到那条消息的原因。但我怀疑这不是你真正要求的。

如果您的问题为什么 Chrome已开始显示此消息,我的猜测是,由于密码表单倾向于传输敏感信息(即密码),因此密码表单中的任何错误都应该被带到开发人员立即注意。在设计和实施密码表格时应该更加小心。

错误消息链接到的文档(我不能假设您已阅读,因为您在问题中未对其进行确认)有一个关于编写符合标准的HTML的小节,其中唯一的ID规则是重新表示:

  

遵循HTML指南

     

Web浏览器的设计考虑了HTML规范,反对它可能会导致网页出现意外问题。这意味着:

     

元素id属性应该是唯一的:没有两个元素应该具有相同的id

(为什么这个规则是唯一一个有人猜测的规则;它看起来肯定会在将来增加更多,但是他们只用这一条规则推出一个文件然后调用它仍然很奇怪好。)

似乎没有办法禁用此消息,但是因为它不会阻止页面超出重复ID的范围(并且它们也不会),如果您无法更正非自己的ID本身可以安全地忽略它。

答案 1 :(得分:1)

代替id='a'使用具有唯一名称的class='a',然后与.a in一起使用,也可以使用不同于id='a'等其他字段ID和{{ 1}}。

答案 2 :(得分:0)

尝试使用[id]代替[attr.id]

这对我有用,希望对您有所帮助。