MISE À JOUR pour 2017: On dirait que la réponse de Katie a plus d'informations à jour que la mienne. Futurs lecteurs: donnez votre avis sur sa réponse .
C'est une excellente question pour laquelle la documentation est étonnamment difficile à trouver. En fait, dans de nombreux cas, vous constaterez que la fonctionnalité de saisie automatique de Chrome "fonctionne". Par exemple, l'extrait de code HTML suivant produit un formulaire qui, du moins pour moi (Chrome v.18), est automatiquement rempli après avoir cliqué dans le premier champ:
<!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>
Cependant, cette réponse n'est pas satisfaisante, car elle laisse la solution dans le domaine de la «magie». En creusant plus profondément, j'ai appris que Chrome (et d'autres navigateurs activés pour la saisie automatique) s'appuyaient principalement sur des indices contextuels pour déterminer le type de données à remplir dans les éléments de formulaire. Des exemples de tels indices contextuels incluent le name
d'un élément d'entrée, le texte entourant l'élément et tout texte d'espace réservé.
Récemment, cependant, l'équipe Chrome a reconnu qu'il s'agissait d'une solution insatisfaisante et a commencé à faire pression pour une normalisation dans ce domaine. Un article très instructif du groupe Google Webmasters a récemment abordé ce problème, expliquant:
Malheureusement, jusqu'à présent, il était difficile pour les webmasters de s'assurer que Chrome et d'autres fournisseurs de remplissage de formulaires puissent analyser correctement leur formulaire. Certaines normes existent; mais ils imposent de lourdes charges à la mise en œuvre du site Web, de sorte qu'ils ne sont pas beaucoup utilisés dans la pratique.
(Les "normes" auxquelles ils se réfèrent sont une version plus récente de la spécification mentionnée dans la réponse d'Avalanchis ci-dessus.)
Le post de Google poursuit en décrivant la solution proposée (qui fait l'objet de critiques importantes dans les commentaires du post). Ils proposent l'utilisation d'un nouvel attribut à cet effet:
Ajoutez simplement un attribut à l'élément d'entrée, par exemple un champ d'adresse e-mail pourrait ressembler à:
<input type=”text” name=”field1” x-autocompletetype=”email” />
... où le x-
signifie "expérimental" et sera supprimé si et quand cela devient un standard. Lisez l'article pour plus de détails, ou si vous voulez creuser plus profondément, vous trouverez une explication plus complète de la proposition sur le wiki whatwg .
MISE
À JOUR: comme indiqué dans ces réponses perspicaces , toutes les expressions régulières que Chrome utilise pour identifier / reconnaître les champs communs se trouvent dans . Donc, pour répondre à la question d'origine, assurez-vous simplement que les noms de vos champs html correspondent à ces expressions. Quelques exemples incluent:autofill_regex_constants.cc.utf8
- Prénom:
"first.*name|initials|fname|first$"
- nom de famille:
"last.*name|lname|surname|last$|secondname|family.*name"
- email:
"e.?mail"
- Adresse 1):
"address.*line|address1|addr1|street"
- code postal:
"zip|postal|post.*code|pcode|^1z$"