84

By suggestions I mean the drop down menu appear when you start typing, and it's suggestions are based on what you've typed before:

Example

for example when I type 'a' in title field, it will give me a ton of suggestions which is pretty annoying.Does anyone know how to turn that off? Thanks in advance.

Joseph
  • 1,186
  • 1
  • 8
  • 20

8 Answers8

104

What you want is to disable HTML autocomplete Attribute.

Setting autocomplete="off" here has two effects:

It stops the browser from saving field data for later autocompletion on similar forms though heuristics that vary by browser. It stops the browser from caching form data in session history. When form data is cached in session history, the information filled in by the user will be visible after the user has submitted the form and clicked on the Back button to go back to the original form page.

Read more on MDN Network

Here's an example how to do it.

<form action="#" autocomplete="on">
  First name:<input type="text" name="fname"><br> 
  Last name: <input type="text" name="lname"><br> 
  E-mail: <input type="email" name="email" autocomplete="off"><br>
  <input type="submit">
</form>

If it's on React framework then use as follows:

<input
    id={field.name}
    className="form-control"
    type="text"
    placeholder={field.name}
    autoComplete="off"
    {...fields}/>

Link to react docs

Update

Here's an update to fix some browsers skipping "autocomplete=off" flag.

<form action="#" autocomplete="off">
  First name: <input type="text" name="fname" autocomplete="off" readonly onfocus="this.removeAttribute('readonly');"><br> Last name: <input type="text" name="lname" autocomplete="off" readonly onfocus="this.removeAttribute('readonly');"><br> E-mail:
  <input type="email" name="email" autocomplete="off" readonly onfocus="this.removeAttribute('readonly');"><br>
  <input type="submit">
</form>
CodeMonkey
  • 2,278
  • 1
  • 21
  • 30
  • 5
    this method seems not working anymore. Is there now another solution for now? – webfacer Mar 26 '18 at 15:21
  • @webfacer, now google chrome ignore this flag and some password managing apps also ignores this. However, this could achieve through JavaScript if you're interested.? – CodeMonkey Mar 26 '18 at 15:25
  • 2
    i know but we decided not to use JS because of what if it is turned off? that´s why we decided to use native html. Hmm autocomplete should be always turned off also because of the security issue. see this twitter https://twitter.com/anttiviljami/status/816585860661518336 – webfacer Mar 26 '18 at 15:29
  • I see @webfacer. That is a serious privacy concern indeed. :/ – CodeMonkey Mar 26 '18 at 15:38
  • Autocomplete off is not working on my side. it stills shows the suggestions and fills it – Husain Khanbahadur Nov 06 '19 at 05:58
  • 1
    Every one of these examples is still showing the auto-suggestions for me on Chrome 78. – Nucleon Nov 15 '19 at 02:44
  • autocomplete="off" works in vue project. Thank You! – LUISAO Apr 20 '21 at 23:50
14

On Chrome, the only method we could identify which prevented all form fills was to use autocomplete="new-password". Apply this on any input which shouldn't have autocomplete, and it'll be enforced (even if the field has nothing to do with passwords, e.g. SomeStateId filling with state form values). See this link on the Chromium bugs discussion for more detail.

Note that this only consistently works on Chromium-based browsers and Safari - Firefox doesn't have special handlers for this new-password (see this discussion for some detail).

Update: Firefox is coming aboard! Nightly v68.0a1 and Beta v67.0b5 (3/27/2019) feature support for the new-password autocomplete attribute, stable releases should be coming on 5/14/2019 per the roadmap.

bsplosion
  • 1,378
  • 15
  • 32
6

use autocomplete="off" attribute

Quote:IMPORTANT

Put the attribute on the <input> element, NOT on the <form> element

Gigo_G
  • 71
  • 1
  • 1
3

I know it's been a while but if someone is looking for the answer this might help. I have used autocomplete="new-password" for the password field. and it solved my problem. Here is the MDN documentation.

  • This worked for me in 2021, `autocomplete="off"` not working with chrome auto saved passwords. For example you have a register form with the same id of "email" and "password" and you saved your credentials in the login window, it offers the user and password in the register form, This "new-password" solved it. – lisandro Mar 12 '21 at 19:06
1

autocomplete = "new-password" does not work for me.

I built a React Form. Google Chrome will autocomplete the form input based on the name attribute.

 <input 
  className="scp-remark" 
  type="text" 
  name="remark"
  id='remark'
  value={this.state.remark} 
  placeholder="Remark" 
  onChange={this.handleChange} 
/>

It will base on the "name" attribute to decide whether to autofill your form. In this example, name: "remark". So Chrome will autofill based on all my previous "remark" inputs.

<input 
  className="scp-remark" 
  type="text" 
  name={uuid()} //disable Chrome autofill
  id='remark'
  value={this.state.remark} 
  placeholder="Remark" 
  onChange={this.handleChange} 
/>

So, to hack this, I give name a random value using uuid() library.

import uuid from 'react-uuid';

Now, the autocomplete dropdown list will not happen. I use the id attribute to identify the form input instead of name in the handleChange event handler

handleChange = (event) => {
    const {id, value} = event.target;
    this.setState({
        [id]: value,
    })
}

And it works for me.

Dave Chong
  • 109
  • 1
  • 4
0

I ended up changing the input field to

<textarea style="resize:none;"></textarea>

You'll never get autocomplete for textareas.

Peter B
  • 39
  • 4
0

I had similar issue but I eventually end up doing

<input id="inp1" autocomplete="off" maxlength="1" /> i.e., autocomplete = 'off' and suggestions will be disappeared.

Aryesh
  • 129
  • 1
  • 8
0

Adding the two following attributes turn off all the field suggestions (tested on Chrome v85, Firefox v80 and Edge v44):

<input type="search" autocomplete="off">