Html 铬合金63+;使用输入类型密码和非唯一ID引发[DOM]错误
Chrome 63会引发以下错误: [DOM]发现2个元素具有非唯一id#a:(更多信息:)Html 铬合金63+;使用输入类型密码和非唯一ID引发[DOM]错误,html,google-chrome,dom,Html,Google Chrome,Dom,Chrome 63会引发以下错误: [DOM]发现2个元素具有非唯一id#a:(更多信息:) 从Chrome 63开始使用输入型密码时是否有任何特殊验证?是的,有;这就是你看到这条信息的原因。但我怀疑这不是你真正想问的 如果您的问题是为什么Chrome开始显示此消息,那么我的猜测是,由于密码表单倾向于传输敏感信息(即密码),因此密码表单中的任何错误都应该立即引起开发人员的注意。在设计和实现密码表单时应更加小心 错误消息链接到的文档(我不能假设您已经阅读了,因为您在问题中没有确认)有一个关于
从Chrome 63开始使用输入型密码时是否有任何特殊验证?是的,有;这就是你看到这条信息的原因。但我怀疑这不是你真正想问的 如果您的问题是为什么Chrome开始显示此消息,那么我的猜测是,由于密码表单倾向于传输敏感信息(即密码),因此密码表单中的任何错误都应该立即引起开发人员的注意。在设计和实现密码表单时应更加小心 错误消息链接到的文档(我不能假设您已经阅读了,因为您在问题中没有确认)有一个关于编写符合标准的HTML的小节,其中重新说明了唯一ID规则: 遵循HTML准则 Web浏览器是根据HTML规范设计的,违背它可能会导致网页出现意外问题。这意味着: 元素
id
属性应该是唯一的:任何两个元素都不应该具有相同的id
(为什么这条规则是唯一存在的,这是所有人的猜测;看起来他们肯定打算在未来添加更多,但奇怪的是,他们拿出一份只有这条规则的文件,并称之为好的。)
似乎没有办法禁用此消息,但由于它不会阻止页面超出重复id的工作范围(它们也不会),如果您无法自己更正非唯一id,则可以安全地忽略它。而不是
id='a'
使用具有唯一名称的class='a'
,然后与中的.a一起使用,或者您可以使用与其他字段id不同的唯一id,如id='a'
和其他字段,如id='b'
而不是[id]
尝试使用[attr.id]
这对我来说很有效,希望能有所帮助。有时很难看到唯一ID。例如,Mole评论小部件的id为,绑定到css和js。很快就有人想要在一个页面上有两个注释小部件——程序员不想重写太多代码,只是为了遵循规范。由于过去十年浏览器忽略了HTML页面上的多个id,console中80%的大型网站在某些页面上出现了这种错误,这让人大吃一惊:每个人都希望谷歌提供方便的工具,而不是游说标准。@Alexander Goncharov:我同情这种困境,但我不代表谷歌、Chrome团队或任何标准机构;如果你想表达你对这个决定的不同意见,就和他们商量一下,不要这样做。此外,我说过你可以忽略这个警告,因为它不会破坏你的页面,就像重复ID一样,所以如果你认为没有必要修复它们,为什么要让警告如此困扰你?这里的问题是,这些警告正在污染其他真实的错误,使其可读性降低。最好有一个隐藏它们的选项。我同意Alexander的观点这有点垃圾standards@Mark艾默里:现在问题中添加了链接,错误信息的问题得到了解决,但更明显的是,该链接没有得到任何确认(在某种程度上,除非询问者考虑并需要澄清其内容,否则问题根本不可能存在)。因此,我觉得我的声明仍然有效。老实说,我也不知道我想对这个问题的否决票做什么。@BoltClock不确定它是什么时候实现的,但它看起来可以过滤。控制台窗口顶部有一个“默认级别”下拉列表,您可以单独选择。取消选择“警告”将删除此邮件。您也可以使用类似Google的搜索进行筛选。例如,筛选器中的“-DOM”也会隐藏这些邮件。
<input type="password">
<input id="a">
<input id="a">