it-swarm.com.de

Die automatische Vervollständigung des Formulars funktioniert nicht

Ich habe ein HTML-Formular mit mehreren Eingabefeldern erstellt, nichts Besonderes. Die Verwendung der neuesten Version von Google Chrome und der automatischen Vervollständigung von Firefox funktioniert für alle Formularfelder. Wenn ich das Formular ausfüllen möchte, schlagen die Browser frühere Eingabewerte für die Felder vor.

In IE8 funktioniert es überhaupt nicht. Andere Formulare funktionieren, aber in meinem IE wird kein einziger Eingabewert gespeichert. Das Formular ist SSL-verschlüsselt, aber ich glaube nicht, dass dies der Grund ist, weil ich andere SSL-Formulare ausprobiert habe, die funktionieren. Irgendwelche Tipps? Vielen Dank!

4
Nick

Laut MSDN-Artikel zu Autocomplete ist das Problem nicht nur SSL, sondern eine Kombination aus SSL und den von Ihrem Server gesendeten Cache-Headern:

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.

Wenn Sie also eine Seite über SSL bereitstellen, müssen Sie die Cache-control -Header ändern, die Ihr Server an private, must-revalidate sendet, damit IE automatisch vervollständigt werden kann.

Dies ist beim Stackoverflow ein paarmal aufgetreten, wobei diese Antwort besonders informativ ist, einschließlich der Bestätigung eines MS-Technikers, dass IE so ausgelegt ist.

3
ConroyP

Normalerweise funktioniert die automatische Vervollständigung nur, wenn Sie sie aktiv deaktivieren (entweder indem Sie das autocomplete="off" -Attribut in Ihrem Formular oder in Ihren Eingabeelementen festlegen oder indem Sie es über Extras> Internetoptionen> Registerkarte Inhalt deaktivieren).

Mit IE können Sie einem INPUT-Feld jedoch auf korrekte Weise mitteilen, welchen Typ von Autocomplete-Feld Sie verwenden. Hierzu wird das Namensschema VCard verwendet. Dies zeigt sich am besten an einem Beispiel:

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

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

Weitere Informationen hierzu finden Sie im MSDN-Artikel " Verwenden von AutoComplete in HTML-Formularen ". Beachten Sie, dass dies ziemlich alt ist, also nicht sicher, wie relevant es für IE8 ist, aber ich nehme an, dass es noch in Gebrauch ist.

Nur ein Wort der Warnung: Die Attribute vcard_name und autocomplete sind Eigentum von IE und sind nicht Standard (X) HTML und daher, wenn Sie sie verwenden, wird Ihre Seite nicht validiert. Ich würde sie persönlich meiden, aber sehen, ob es einen Unterschied macht.

0
Dan Diplo