Stop Google chrome auto fill the input [duplicate]

We are no longer dependent on hacks for this. You can set autocomplete to new-password and it will work as intended.

<input type="password" name="pwd" autocomplete="new-password">

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete


Are you explicitly setting the values as blank? For example:

<input type="text" name="textfield" value="">

That should stop browsers putting data in where it shouldn't. Alternatively, you can add the autocomplete attribute to the form tag:

<form autocomplete="off" ...></form>

Solution 1: Putting 2 lines of code under under <form ..> tag does the trick.

<form id="form1" runat="server" >
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>

...

Read more

Solution 2: It removes "name" and "id" attributes from elements and assigns them back after 1ms. Put this in document get ready.

$('form[autocomplete="off"] input, input[autocomplete="off"]').each(function () {

                var input = this;
                var name = $(input).attr('name');
                var id = $(input).attr('id');

                $(input).removeAttr('name');
                $(input).removeAttr('id');

                setTimeout(function () {
                    $(input).attr('name', name);
                    $(input).attr('id', id);
                }, 1);
            });

Solution 3: Tested in Chrome 60.0.3112.101

<input type="password" name="pwd" autocomplete="new-password">

This issue still exists as of Version 55.0.2883.87 m. (on Windows 10)

Solutions like setting the autocomplete attribute on a form

or adding fake input fields and removing the name attribute before submit do not work anymore, since Chrome ignores or instantly auto-completes them on removal.

The only way to get it currently to work as intended is to set the autocomplete attribute to "new-password"

<input type="text" name="text" autocomplete="new-password"> 

even on non password type inputs.


The latest version of Chrome (46.0.2490.86) appears to have changed behaviour again. This time, AutoFill has nothing to do with autocomplete or readonly or other workarounds suggested here (and on these bug reports https://code.google.com/p/chromium/issues/detail?id=468153, https://bugs.chromium.org/p/chromium/issues/detail?id=587466)

Rather, AutoFill now looks at the label next to the input box and generates an AutoFill based on that (as well as the id and name). A big clue is how AutoFill can actually fill multiple fields at once (e.g. Street, Suburb and State). It appears to be using several techniques (label, name, id) to discern the spatial relationship between fields.

So a workaround is to insert junk text into the label inside a hidden span...

S<span style="display:none">_</span>uburb:

...and also obfuscate/remove the id and name. This was the only thing that prevented Suburb AutoFill for me.