docs.rodeo

MDN Web Docs mirror

HTML attribute: autocomplete

{{HTMLSidebar}} 

The HTML autocomplete attribute lets web developers specify what if any permission the {{Glossary("user agent")}}  has to provide automated assistance in filling out form field values, as well as guidance to the browser as to the type of information expected in the field.

It is available on {{HTMLElement("input")}}  elements that take a text or numeric value as input, {{HTMLElement("textarea")}}  elements, {{HTMLElement("select")}}  elements, and {{HTMLElement("form")}}  elements.

{{EmbedInteractiveExample("pages/tabbed/attribute-autocomplete.html", "tabbed-shorter")}} 

Description

The autocomplete attribute provides a hint to the user agent specifying how to, or indeed whether to, prefill a form control. The attribute value is either the keyword off or on, or an ordered list of space-separated tokens.

<input autocomplete="off" />
<input autocomplete="on" />
<input autocomplete="shipping street-address" />
<input autocomplete="section-user1 billing postal-code" />

If an {{HTMLElement("input")}} , {{HTMLElement("select")}}  or {{HTMLElement("textarea")}}  element has no autocomplete attribute, the browser will use the autocomplete attribute of the element’s owning form. The owning form is either the {{HTMLElement("form")}}  matching the id specified by the form attribute of the element (if present) or, more commonly, the <form> the element is nested in.

[!NOTE] In order to provide autocompletion, user-agents might require <input>/<select>/<textarea> elements to:

  1. Have a name and/or id attribute
  2. Be descendants of a <form> element
  3. Be owned by a form with a {{HTMLElement("input/submit", "submit")}}  button

If the same list of tokens is used in more than one form control, the user-agent will autocomplete all occurrences of the same autocomplete value with the same data value.

Some tokens may be used more than once with potentially different expected values, such as the zip-code token in a form that contains both shipping and billing addresses. Including multiple different tokens in a space-separated list causes the associated form controls to be given unique autocomplete values: in this case, autocomplete="shipping zip-code" and autocomplete="billing zip-code".

Some autocomplete values may need to be re-used multiple times. For example, a form may contain multiple shipping addresses and therefore multiple occurrences of "shipping zip-code" while still expecting different values. To make the autocomplete value unique in these cases, the first token in the space-separated list of tokens can be a section-* token, where the token’s first eight characters are always the string “section-”, followed by an alphanumeric string. All form fields given the section-* token with the same alphanumeric string belong to the same named group.

If including the autocomplete attribute on {{HTMLElement("input/hidden", "hidden")}}  input elements (<input type="hidden">), its value must be an ordered list of space-separated tokens; the on and off keywords are not allowed.

The source of the suggested values is generally up to the browser; typically values come from past values entered by the user, but they may also come from pre-configured values. For instance, a browser might let the user save their name, address, phone number, and email addresses for autocomplete purposes. The browser may also offer the ability to save encrypted credit card information, for autocompletion following an authentication procedure.

[!NOTE] The autocomplete attribute also controls whether Firefox will — unlike other browsers — persist the dynamic disabled state and (if applicable) dynamic checkedness of an <input> element, <textarea> element, or entire <form> across page loads. The persistence feature is enabled by default. Setting the value of the autocomplete attribute to off disables this feature. This works even when the autocomplete attribute would normally not apply by virtue of its type. See Firefox bug 654072.

Values

The attribute value is either the keyword off or on, or a space-separated <token-list> that describes the meaning of the autocompletion value.

See the WHATWG Standard for more detailed information.

Token list tokens

The <token-list> options include, in order:

  1. Group naming token
  2. Grouping identifier
  3. Detail tokens
  4. Web authorization

Named groups

To create a named group of form fields, the optional section-* token can be used. If present, this token must be the first token in the space-separated list of tokens.

Grouping identifier

An optional shipping or billing grouping identifier

Detail tokens

Each space-separated detail token list includes either a recipient type with digital contact information, in that order, or a space-separated token list of other tokens.

Recipient type

The tokens that identify the type of recipient include:

Digital contact tokens

The token or group of tokens for telephone numbers or a number’s component parts, phone extensions, email addresses, or instant messaging protocols.

Other tokens

When the form field is not a phone number, email address, or instant messaging protocol, the space-separated list of tokens is not preceded by a contact type:

Web authorization token

With {{htmlelement("input")}}  and {{htmlelement("textarea")}} , the webauthn token can be included last to indicate the user agent should show public key credentials when the user is interacting with the control.

Examples

<div>
  <label for="cc-number">Enter your credit card number</label>
  <input name="cc-number" id="cc-number" autocomplete="off" />
</div>

Administrative levels in addresses

The four administrative level fields (address-level1 through address-level4) describe the address in terms of increasing levels of precision within the country in which the address is located. Each country has its own system of administrative levels, and may arrange the levels in different orders when addresses are written.

address-level1 always represents the broadest administrative division; it is the least-specific portion of the address short of the country name.

Form layout flexibility

Given that different countries write their address in different ways, with each field in different places within the address, and even different sets and numbers of fields entirely, it can be helpful if, when possible, your site is able to switch to the layout expected by your users when presenting an address entry form, given the country the address is located within.

Variations

The way each administrative level is used will vary from country to country. Below are some examples; this is not meant to be an exhaustive list.

United States

A typical home address within the United States looks like this:

432 Anywhere St Exampleville CA 95555

In the United States, the least-specific portion of the address is the state, in this case “CA” (the official US Postal Service shorthand for “California”). Thus address-level1 is the state, or “CA” in this case.

The second-least specific portion of the address is the city or town name, so address-level2 is “Exampleville” in this example address.

United States addresses do not use levels 3 and up.

United Kingdom

Address input forms in the UK should contain one or two address levels and one, two or three address lines, depending on the address. A complete address would look like so:

103 Frogmarch Street Upper-Wapping Winchelsea Whereshire TN99 8ZZ

The address levels are:

The postcode is separate. Note that you can actually use just the postcode and address-line1 to successfully deliver mail in the UK, so they should be the only mandatory items, but usually people tend to provide more details.

China

China can use as many as three administrative levels: the province, the city, and the district.

The 6 digit postal code is not always needed but when supplied it is placed separately with a label for clarity. For example:

北京市东城区建国门北大街 8 号华润大厦 17 层 1708 单元 邮编:100005

Japan

An address in Japan is typically written in one line, in an order from the least-specific to more-specific portions (in reverse order to the United States). There are two or three administrative levels in an address. Additional line can be used to show building names and room numbers. The postal code is separate. For example:

〒 381-0000 長野県長野市某町 123

“〒” and following seven digits shows the postal code.

address-level1 is used for prefectures or the Tokyo Metropolis; “長野県” (Nagano Prefecture) is in this case. address-level2 is typically used for cities, counties, towns and villages; “長野市” (Nagano City) in this case. “某町 123” is address-line1 which consists of an area name and a lot number.

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN