desenv-web-rp.com

O preenchimento automático de formulário não está funcionando

Criei um formulário HTML com vários campos de entrada, nada de especial. O uso da versão mais recente do Google Chrome e do preenchimento automático do Firefox funciona para todos os campos do formulário, o que significa que sempre que eu quero preencher o formulário, os navegadores sugerem valores de entrada anteriores para os campos.

No IE8, ele não funciona. Outros formulários funcionam, mas o meu IE não se lembra de um único valor de entrada. O formulário é criptografado em SSL, mas não creio que seja esse o motivo, porque tentei outros formulários SSL que funcionam. Alguma dica? Obrigado!

4
Nick

De acordo com artigo do MSDN sobre preenchimento automático , o problema não é apenas o SSL, mas uma combinação de SSL e os cabeçalhos de cache enviados pelo servidor:

Note: if both of the following conditions are true:
   1. The page was delivered over HTTPS
   2. The page was delivered with headers or a META tag that prevents caching

...the Autocomplete feature is disabled, regardless of the existence or 
value of the Autocomplete attribute. This remark applies to IE5, IE6, 
IE7, and IE8.

Portanto, se você estiver exibindo uma página sobre SSL, precisará modificar os cabeçalhos Cache-control que seu servidor está enviando para private, must-revalidate para permitir que IE autocomplete trabalhe nessas páginas.

Isso ocorreu algumas vezes no stackoverflow, com esta resposta sendo particularmente informativo, incluindo a confirmação de um engenheiro da MS que IE foi projetado para funcionar dessa maneira.

3
ConroyP

Normalmente, o preenchimento automático "simplesmente funciona", a menos que você o desative ativamente (definindo o atributo autocomplete="off" no formulário ou nos elementos de entrada ou desabilitando-o via Ferramentas> Opções da Internet> guia Conteúdo ).

No entanto, IE tem uma maneira adequada de informar um campo INPUT que tipo de campo de preenchimento automático você está usando. Ele usa o esquema de nomeação VCard para fazer isso. Isso é melhor mostrado em um exemplo:

<input type="text" name="email" vcard_name = "vCard.Email" />

<input type="text" name="officephone" vcard_name = "vCard.Business.Phone" />

Você pode ler mais sobre isso no artigo do MSDN ' sando o preenchimento automático em formulários HTML '. Observe que isso é bastante antigo, portanto, não tenho certeza de quão relevante é para o IE8, mas presumo que ele ainda esteja em uso.

Apenas uma palavra de advertência: Os atributos vcard_name e autocomplete são propriedade de IE e não são (== --- ==) não HTML padrão (X) e, portanto, se você os usar, sua página não será validada. Eu pessoalmente os evitaria, mas veria se isso faz alguma diferença.

0
Dan Diplo