ATUALIZAÇÃO para 2017: parece que a resposta de Katie tem mais informações atualizadas do que as minhas. Futuros leitores: dê seus votos positivos para a resposta dela .
Essa é uma ótima pergunta e para a qual a documentação é surpreendentemente difícil de encontrar. Na verdade, em muitos casos, você verá que a funcionalidade de preenchimento automático do Chrome "simplesmente funciona". Por exemplo, o seguinte trecho de html produz um formulário que, pelo menos para mim (Chrome v. 18), é preenchido automaticamente depois de clicar no primeiro 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>
No entanto, essa resposta é insatisfatória, pois deixa a solução no campo da "mágica". Aprofundando, aprendi que o Chrome (e outros navegadores habilitados para preenchimento automático) dependem principalmente de dicas contextuais para determinar o tipo de dados que devem ser preenchidos nos elementos do formulário. Exemplos de dicas contextuais incluem o name
elemento de entrada, o texto ao redor do elemento e qualquer texto de espaço reservado.
Recentemente, no entanto, a equipe do Chrome reconheceu que esta é uma solução insatisfatória e começou a pressionar pela padronização nesse assunto. Uma postagem muito informativa do grupo Google Webmasters discutiu recentemente esse problema, explicando:
Infelizmente, até agora tem sido difícil para os webmasters garantir que o Chrome e outros provedores de preenchimento de formulários possam analisar seu formulário corretamente. Existem alguns padrões; mas colocam encargos onerosos na implementação do site, para que não sejam muito utilizados na prática.
(Os "padrões" a que se referem é uma versão mais recente das especificações mencionadas na resposta de Avalanchis acima.)
O post do Google continua descrevendo a solução proposta (que é recebida por críticas significativas nos comentários do post). Eles propõem o uso de um novo atributo para esse fim:
Basta adicionar um atributo ao elemento de entrada, por exemplo, um campo de endereço de email pode se parecer com:
<input type=”text” name=”field1” x-autocompletetype=”email” />
... onde x-
significa "experimental" e será removido se e quando isso se tornar um padrão. Leia a postagem para obter mais detalhes ou, se quiser aprofundar, encontrará uma explicação mais completa da proposta no wiki do whatwg .
ATUALIZAÇÃO:
conforme indicado nessas respostas detalhadas , todas as expressões regulares que o Chrome usa para identificar / reconhecer campos comuns podem ser encontradas em . Portanto, para responder à pergunta original, verifique se os nomes dos seus campos html são correspondidos por essas expressões. Alguns exemplos incluem:autofill_regex_constants.cc.utf8
- primeiro nome:
"first.*name|initials|fname|first$"
- último nome:
"last.*name|lname|surname|last$|secondname|family.*name"
- o email:
"e.?mail"
- Endereço Linha 1):
"address.*line|address1|addr1|street"
- Código postal:
"zip|postal|post.*code|pcode|^1z$"