ACTUALIZACIÓN para 2017: Parece que la respuesta de Katie tiene más información actualizada que la mía. Futuros lectores: den su voto positivo a su respuesta .
Esta es una gran pregunta y para la cual la documentación es sorprendentemente difícil de encontrar. En realidad, en muchos casos encontrará que la funcionalidad de Autocompletar de Chrome "simplemente funciona". Por ejemplo, el siguiente fragmento de html produce un formulario que, al menos para mí (Chrome v. 18), se llena automáticamente después de hacer clic en el primer campo:
<!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>
Sin embargo, esta respuesta no es satisfactoria, ya que deja la solución en el ámbito de la "magia". Profundizando, aprendí que Chrome (y otros navegadores habilitados para autocompletar) se basan principalmente en pistas contextuales para determinar el tipo de datos que se deben completar en los elementos del formulario. Los ejemplos de tales pistas contextuales incluyen el name
de un elemento de entrada, el texto que rodea el elemento y cualquier texto de marcador de posición.
Recientemente, sin embargo, el equipo de Chrome reconoció que esta es una solución insatisfactoria, y han comenzado a presionar por la estandarización en este asunto. Una publicación muy informativa del grupo de Google Webmasters recientemente discutió este problema, explicando:
Desafortunadamente, hasta ahora ha sido difícil para los webmasters asegurarse de que Chrome y otros proveedores de llenado de formularios puedan analizar su formulario correctamente. Existen algunas normas; pero imponen cargas onerosas en la implementación del sitio web, por lo que no se usan mucho en la práctica.
(Los "estándares" a los que se refieren es una versión más reciente de la especificación mencionada en la respuesta de Avalanchis anterior).
La publicación de Google continúa describiendo su solución propuesta (que se encuentra con críticas significativas en los comentarios de la publicación). Proponen el uso de un nuevo atributo para este propósito:
Simplemente agregue un atributo al elemento de entrada, por ejemplo, un campo de dirección de correo electrónico podría verse así:
<input type=”text” name=”field1” x-autocompletetype=”email” />
... donde x-
significa "experimental" y se eliminará si esto se convierte en un estándar. Lea la publicación para obtener más detalles, o si desea profundizar, encontrará una explicación más completa de la propuesta en el wiki de whatwg .
ACTUALIZACIÓN:
Como se señala en estas respuestas perspicaces , se pueden encontrar todas las expresiones regulares que Chrome usa para identificar / reconocer campos comunes . Entonces, para responder la pregunta original, solo asegúrese de que los nombres de sus campos html coincidan con estas expresiones. Algunos ejemplos incluyen:autofill_regex_constants.cc.utf8
- nombre de pila:
"first.*name|initials|fname|first$"
- apellido:
"last.*name|lname|surname|last$|secondname|family.*name"
- correo electrónico:
"e.?mail"
- Dirección Línea 1):
"address.*line|address1|addr1|street"
- código postal:
"zip|postal|post.*code|pcode|^1z$"