Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

I created a HTML form with several input fields, nothing special. Using the most recent version of Google Chrome and Firefox autocompletion works for all form fields which means that whenever I want to refill the form the browsers suggest former input values for the fields.

In IE8 it does not work at all. Other forms do work but on mine IE does not remember a single input value. The form is SSL encrypted but I don't think that's the reason because I tried other SSL forms which work. Any tipps? Thanks!

share|improve this question

2 Answers 2

up vote 2 down vote accepted

According to the MSDN article on Autocomplete, the issue isn't SSL alone, but rather a combination of SSL and the cache headers being sent out by your server:

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.

So if you're serving a page over ssl, you'll need to modify the Cache-control headers your server is sending to private, must-revalidate to allow IE autocomplete to work on these pages.

This has come up a couple of times on stackoverflow, with this answer being particularly informative, including confirmation from an MS engineer that IE is designed to work this way.

share|improve this answer

Normally autocomplete "just works" unless you actively disable it (either by setting autocomplete="off" attribute on your form or input elements or by disabling it via Tools > Internet Options > Content tab).

However, IE does have a propriety way of telling an INPUT field what type of autocomplete field you are using. It uses the VCard naming scheme to do this. This is best shown in an example:

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

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

You can read more about this in the MSDN article 'Using AutoComplete in HTML Forms'. Note this is quite old so not sure how relevant it is to IE8, but I presume it is still in use.

Just a word of warning: The vcard_name and autocomplete attributes are propriety to IE and are not standard (X)HTML and therefore if you use them your page will not validate. I would personally avoid them, but see if it makes any difference.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.