UPDATE für 2017: Anscheinend enthält die Antwort von Katie aktuellere Informationen als meine. Zukünftige Leser: Geben Sie Ihre Antwort auf ihre Antwort .
Dies ist eine großartige Frage, für die es überraschend schwierig ist, Unterlagen zu erhalten. In vielen Fällen werden Sie feststellen, dass die Chrome Autofill-Funktion "einfach funktioniert". Mit dem folgenden HTML-Ausschnitt wird beispielsweise ein Formular erstellt, das zumindest für mich (Chrome Version 18) nach dem Klicken in das erste Feld automatisch ausgefüllt wird:
<!DOCTYPE html>
<html>
<body>
<form method="post">
First name:<input type="text" name="fname" /><br />
Last name: <input type="text" name="lname" /><br />
E-mail: <input type="text" name="email" /><br />
Phone: <input type="text" name="phone" /><br />
Address: <input type="text" name="address" /><br />
</form>
</body>
</html>
Diese Antwort ist jedoch unbefriedigend, da sie die Lösung im Bereich der "Magie" belässt. Bei näherer Betrachtung habe ich erfahren, dass Chrome (und andere automatisch ausfüllbare Browser) in erster Linie auf kontextbezogene Hinweise angewiesen sind, um den Datentyp zu bestimmen, der in Formularelemente eingefügt werden soll. Beispiele für solche kontextbezogenen Hinweise sind das name
eines Eingabeelements, der das Element umgebende Text und ein beliebiger Platzhaltertext.
Vor kurzem hat das Chrome-Team jedoch anerkannt, dass dies eine unbefriedigende Lösung ist, und sie haben begonnen, auf eine Standardisierung in dieser Angelegenheit zu drängen. In einem sehr informativen Beitrag der Google Webmasters-Gruppe wurde dieses Problem kürzlich erörtert und erläutert:
Leider war es für Webmaster bisher schwierig sicherzustellen, dass Chrome und andere Anbieter zum Ausfüllen von Formularen ihr Formular korrekt analysieren können. Es gibt einige Standards; Sie belasten jedoch die Implementierung der Website erheblich, sodass sie in der Praxis nicht häufig eingesetzt werden.
(Die "Standards", auf die sie sich beziehen, sind eine neuere Version der Spezifikation, die in der obigen Antwort von Avalanchis erwähnt wurde.)
In dem Google-Beitrag wird die vorgeschlagene Lösung beschrieben (die in den Kommentaren des Beitrags auf erhebliche Kritik stößt). Sie schlagen die Verwendung eines neuen Attributs für diesen Zweck vor:
Fügen Sie dem Eingabeelement einfach ein Attribut hinzu, beispielsweise könnte ein E-Mail-Adressfeld folgendermaßen aussehen:
<input type=”text” name=”field1” x-autocompletetype=”email” />
... wo das x-
für "experimentell" steht und entfernt wird, wenn & wenn dies zum Standard wird. Lesen Sie den Beitrag für weitere Details, oder wenn Sie tiefer graben möchten, finden Sie eine ausführlichere Erklärung des Vorschlags im whatwg-Wiki .
UPDATE:
Wie in diesen aufschlussreichen Antworten ausgeführt , finden Sie alle regulären Ausdrücke, die Chrome zum Identifizieren / Erkennen allgemeiner Felder verwendet autofill_regex_constants.cc.utf8
. Um die ursprüngliche Frage zu beantworten, stellen Sie einfach sicher, dass die Namen Ihrer HTML-Felder mit diesen Ausdrücken übereinstimmen. Einige Beispiele sind:
- Vorname:
"first.*name|initials|fname|first$"
- Nachname:
"last.*name|lname|surname|last$|secondname|family.*name"
- Email:
"e.?mail"
- Anschrift Zeile 1):
"address.*line|address1|addr1|street"
- Postleitzahl:
"zip|postal|post.*code|pcode|^1z$"