Ist dies ein Fehler beim automatischen Ausfüllen in Chrome 81?

2

Auf meinem Hauptcomputer mit Ubuntu 18.04 und Chrome 78 funktioniert dieses Formular wie erwartet - jedes Formular kann einzeln ausgefüllt werden.

form {
  border: solid 1px black; 
  padding: 1em; 
  display: inline-block; 
}

form input {
   display: block; 
}
<form>
  <label> name<input type = "text" name ="name" />   </label>
  <label> phone<input type = "text" name ="phone" /> </label>
  <label> email<input type = "text" name ="email" /> </label>
  <button type="submit"> submit</button>
</form>

<form>
  <label> name <input type = "text" name ="name"/> </label>
  <label> phone<input type = "text" name ="phone" /> </label>
  <label> email <input type = "text" name ="email"/> </label>
  <button type="submit"> submit</button>
</form>

CodePen

Bei Chrome 81 auf einem Windows-Computer wird beim Auswählen der automatischen Ausfüllung im zweiten Formular auch das erste Formular ausgefüllt.

Ist dies ein Fehler oder ein korrektes Verhalten beim automatischen Ausfüllen?

Wenn ja, gibt es einen Bug-Tracker, in dem dies dokumentiert ist?

user1068446
quelle
Sie geben den Feldern namein beiden Formularen dasselbe . Geben Sie den Feldern zur Unterscheidung in den einzelnen Formularen unterschiedliche Namen.
Harrymc
Chrome "78 und 81" ? Meinten Sie vielleicht "68 und 71"? Es gibt noch kein Chrome 81 - die aktuelle stabile Version ist 71 und sogar der Kanarienkanal ist nur 74.
Neugieriger Lurker

Antworten:

0

Die benannten Felder in einem HTML-Formular werden vom Browser im Benutzerprofil mit ihren Werten gespeichert und können über den Mechanismus des automatischen Ausfüllens in anderen Formularen wiederverwendet werden. Ein Feld mit demselben Namen wird dann global auf dieser Website und allen anderen Websites verwendet, die Felder mit demselben Namen haben.

Im Chromium-Artikel von Form Autofill ist dies an der Struktur der SQLite-Datenbanktabelle zu erkennen, in der diese Werte als Paare gespeichert sind. Die Tabellenspalten lauten: pair_id, name, value, count . Hier ist zu sehen, dass die ursprüngliche Website und die ursprüngliche Seiten-URL hier nicht erscheinen und keine Bedeutung haben.

Sie haben Standardnamen für die Formularfelder verwendet, die in verschiedenen Standards enthalten sind: Name, Telefon, E-Mail . Einige Browser erlauben es sogar, Werte für sie in die Profildefinition einzugeben, die der Browser dann automatisch für alle Formulare unter Verwendung dieser Standardfeldnamen ausfüllt. Der Browser speichert alle Feldwerte, nicht nur die mit bekannten Namen.

Sie haben zweimal dieselben Namen verwendet, die der Browser in Ihrem Profil speichert, um sie erneut zu verwenden. Beim automatischen Ausfüllen wird nur einer der Werte verwendet, die Sie für gleichnamige Felder eingegeben haben, basierend auf den internen Algorithmen, z. B. dem zuletzt eingegebenen oder dem am häufigsten verwendeten. In der Tat haben Sie erklärt, dass die Werte in beiden Formen der Felder identisch gemacht werden sollen, was der Browser durch automatisches Ausfüllen dann mit den gleichen Werten angefordert hat.

Es gibt andere bekannte Varianten der von Ihnen verwendeten Feldnamen. Neben dem von Ihnen verwendeten Namen existieren beispielsweise fname , mname und lname für Vor-, Mittel- und Nachnamen.

In HTML5 wurde der Formularstandard um das autocompleteTag-Attribut erweitert, mit dem beispielsweise die geschäftlichen und privaten Telefonnummern unterschieden werden können. Zum Beispiel:

<p><label>Customer name: <input name="custname" required autocomplete="shipping name"></label></p>
<p><label>Telephone: <input type=tel name="custtel" autocomplete="shipping tel"></label></p>
<p><label>E-mail address: <input type=email name="custemail" autocomplete="shipping email"></label></p>

Nützliche Hinweise:

Harrymc
quelle
Ich glaube, diese Antwort erklärt nicht den Unterschied im Verhalten zwischen 79 und 81
user1068446
Ich denke, dass sich Chrome bemüht, den Standard besser zu respektieren, und dass diese Entwicklung durch die HTML5-Evolution des Umgangs mit Formularfeldern motiviert ist. Nach Ihren Angaben war die Bedienung in Chrome 78 nicht standardgemäß.
Harrymc