it-swarm-eu.dev

Automatické doplňování formuláře nefunguje

Vytvořil jsem HTML formulář s několika vstupními poli, nic zvláštního. Používání nejnovější verze Google Chrome a automatického doplňování Firefoxu funguje pro všechna pole formuláře, což znamená, že kdykoli chci doplnit formulář, prohlížeče navrhnou dřívější vstupní hodnoty pro pole.

V IE8 to nefunguje vůbec. Ostatní formuláře fungují, ale v mém IE si nepamatuje jedinou vstupní hodnotu. Formulář je šifrován SSL, ale nemyslím si, že je to důvod, protože jsem vyzkoušel jiné SSL formuláře, které fungují. Nějaké tipy? Dík!

4
Nick

Podle článek MSDN o Autocomplete , problém není samotný SSL, ale spíše kombinace SSL a záhlaví mezipaměti odesílaných vaším serverem:

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.

Pokud tedy zobrazujete stránku přes ssl, budete muset upravit záhlaví Cache-control, které váš server odesílá na private, must-revalidate, aby na těchto stránkách mohl pracovat IE autocomplete.

Toto se objevilo několikrát při stackoverflow, s tato odpověď je zvláště informativní, včetně potvrzení od inženýra MS, že IE je navržen tak, aby fungoval tímto způsobem.

3
ConroyP

Normálně automatické doplňování „prostě funguje“, pokud jej aktivně neaktivní (buď nastavením atributu autocomplete="off" ve formuláři nebo vstupních prvcích nebo jeho deaktivací pomocí Nástroje> Možnosti Internetu> karta Obsah ).

IE však má vhodný způsob, jak sdělit poli INPUT, jaký typ pole automatického doplňování používáte. K tomu používá schéma pojmenování VCard . To je nejlépe vidět na příkladu:

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

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

Více se o tom můžete dočíst v článku MSDN ' Používání automatického dokončování ve formulářích HTML '. Všimněte si, že je to docela staré, takže si nejste jisti, jak relevantní je pro IE8, ale předpokládám, že se stále používá.

Jen varovné slovo: Atributy vcard_name a autocomplete jsou vhodné pro IE a nejsou nejsou standardní (X) HTML, a proto pokud je používáte, vaše stránka nebude ověřována. Osobně bych se jim vyhnul, ale zjistil jsem, jestli to nezmění.

0
Dan Diplo