web-dev-qa-db-fra.com

Chrome 63+ génère une erreur [DOM] avec le mot de passe du type d'entrée et des identifiants non uniques

A partir de Chrome 63, l'erreur suivante est générée:

[DOM] 2 éléments trouvés avec l'id non unique #a: (Plus d'infos: https://goo.gl/9p2vKq )

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

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

Existe-t-il une validation spéciale lors de l'utilisation du mot de passe de type de saisie, à partir de Chrome 63?

13
Arnab Ghosh

Oui il y a; c'est pourquoi vous voyez ce message. Mais je soupçonne que ce n'est pas ce que vous demandez vraiment.

Si votre question est pourquoi Chrome a commencé à afficher ce message, je suppose que puisque les formulaires protégés par mot de passe tendent à transmettre des informations sensibles (notamment un mot de passe), toute erreur dans ces formulaires doit immédiatement être signalée au développeur. Une plus grande attention doit être apportée lors de la conception et de la mise en œuvre de formulaires avec mot de passe.

Le document auquel le message d'erreur renvoie (que je ne peux pas supposer que vous avez lu puisque vous ne l'avez pas reconnu dans votre question) comporte une sous-section sur l'écriture de code HTML conforme aux normes, dans laquelle la règle d'ID unique est réaffirmée. :

Suivez les directives HTML

Les navigateurs Web sont conçus avec la spécification HTML à l'esprit, et leur non respect peut entraîner des problèmes inattendus avec votre page Web. Ça signifie:

Les attributs d'élément id doivent être uniques: aucun élément ne doit avoir le même id.

(Pourquoi cette règle est-elle la seule que l'on puisse deviner? On dirait certainement qu'ils ont l'intention d'en ajouter davantage à l'avenir, mais il est quand même étrange qu'ils aient publié un document contenant uniquement cette règle et l'appelant bon.)

Il ne semble pas y avoir de moyen de désactiver ce message, mais comme cela n’empêche pas la page de fonctionner au-delà de la façon dont les ID en double auraient (et ils ne le font pas non plus), si vous ne parvenez pas à corriger le non identifiants uniques vous-même, vous pouvez les ignorer.

20
BoltClock

Au lieu de id='a', utilisez class='a' avec un nom unique, puis utilisez avec .a in ou vous pouvez utiliser un identifiant unique différent de l'identifiant d'un autre champ comme id='a' et d'un autre champ comme id='b'.

1
Krish

Au lieu de [id], essayez d'utiliser [attr.id]

Cela a fonctionné pour moi, espérons que cela aide.

0
Ganesh Khadsan