web-dev-qa-db-ja.com

Chrome 63+は、入力タイプのパスワードと一意でないIDで[DOM]エラーをスローします

Chrome 63から、次のエラーがスローされます。

[DOM]一意でないID #aを持つ2つの要素が見つかりました:(詳細: https://goo.gl/9p2vKq

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

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

Chrome 63から始まる入力タイプのパスワードが使用されている場合、特別な検証が行われていますか?

15
Arnab Ghosh

はいあります;そのため、そのメッセージが表示されます。しかし、それはあなたが本当に求めていることではないと思います。

質問がwhy Chromeがこのメッセージの表示を開始した場合、パスワード付きフォームは機密情報(つまりパスワード)を送信する傾向があるため、パスワードで保護されたフォームは、開発者にすぐに注意を喚起する必要があります。

エラーメッセージがリンクしているドキュメント(質問で確認していないので読んだとは思いません)には、標準に準拠したHTMLの記述に関するサブセクションがあり、一意のIDルールが再記述されています:

HTMLガイドラインに従う

WebブラウザーはHTML仕様を念頭に置いて設計されており、それに反すると、Webページで予期しない問題が発生する可能性があります。これの意味は:

要素id属性は一意である必要があります。2つの要素が同じidを持つことはできません。

(なぜこのルールが唯一の推測であるのか、将来、さらに追加するつもりであることは確かに見えますが、この1つのルールだけでドキュメントを作成し、それを良いと呼ぶのは依然として奇妙です。)

このメッセージを無効にする方法はないように見えますが、重複IDが持つ方法を超えてページが機能するのを防ぐことはできないため(そして、どちらもしない)、非-一意のIDを自分で無視するのは安全です。

21
BoltClock

id='a'の代わりにclass='a'を一意の名前で使用し、.a inで使用するか、id='a'などの他のフィールドIDとid='b'などの他のフィールドと異なる一意のIDを使用できます。 。

1
Krish

の代わりに [id]を使用してみてください[attr.id]

これが役に立てば幸いです。

0
Ganesh Khadsan