Как отключить автозаполнение браузера в поле веб-формы / теге ввода?

Как отключить autocompleteв основных браузерах для конкретного input(или form field)?

5.08.2008 16:22:32
В некоторых системах, где тестировщикам приходится вручную вводить много информации снова и снова, может быть полезно иметь параметр, который можно настраивать так, чтобы при тестировании вы могли отключить его и просто нажать «tab> стрелка вниз> tab> стрелка вниз и т.д.». . '
Simon_Weaver 22.11.2009 05:15:53
30 ОТВЕТОВ
РЕШЕНИЕ

Firefox 30 игнорирует autocomplete="off"пароли, предпочитая вместо этого запрашивать у пользователя, должен ли пароль храниться на клиенте. Обратите внимание на следующий комментарий от 5 мая 2014 года:

  • Менеджер паролей всегда запрашивает, хочет ли он сохранить пароль. Пароли не сохраняются без разрешения пользователя.
  • Мы являемся третьим браузером, внедрившим это изменение, после IE и Chrome.

Согласно документации Mozilla Developer Network , логический атрибут элемента autocompleteформы предотвращает кэширование данных формы в старых браузерах.

<input type="text" name="foo" autocomplete="off" />
2601
2.06.2019 03:12:01
Это не сработало для меня в Firefox 3.0.3. Мне пришлось поместить атрибут автозаполнения в FORM, а не в INPUT.
Winston Fassett 12.11.2008 04:11:48
Автозаполнение определено только в стандартах HTML 5, поэтому оно нарушит все проверки, которые вы выполняете для HTML 4. * ...
Jrgns 19.01.2009 08:04:08
@ Уинстон, вы должны поместить его как в форму, так и в сам элемент ввода. Таким образом вы охватите всю нестандартность браузеров.
AviD 13.12.2010 12:11:57
И не забудьте отключить расширение autocomplete = on (если вы используете Chrome) перед тестированием веб-приложения. В противном случае вы будете чувствовать себя очень глупо, как я. ;)
Jo Liss 26.02.2011 00:57:53

Используйте нестандартное имя и идентификатор для полей, чтобы вместо «name» было «name_». Браузеры не увидят его как поле имени. Самое приятное в этом то, что вы можете сделать это с некоторыми, но не со всеми полями, и он автоматически заполнит некоторые, но не все поля.

12
5.08.2008 16:27:39
Проблема в том, что если другие сайты используют «name_» для достижения той же цели, вы возвращаетесь к исходной точке.
ConroyP 20.10.2008 09:01:51
так что сделайте это "mysite_name". Если кто-то еще использует это, я бы задал им вопросы ...
Steve Perks 13.05.2009 12:50:36
это портит некоторые из этих автоматически
Simon_Weaver 22.11.2009 05:11:47
<form name="form1" id="form1" method="post" 
      autocomplete="off" action="http://www.example.com/form.cgi">

Это будет работать в Internet Explorer и Mozilla FireFox, недостатком является то, что это не стандарт XHTML.

104
6.01.2018 06:36:51
Я заметил, что добавление его к элементу формы не всегда предотвращает его применение к отдельным входам в форме. Поэтому, вероятно, лучше всего поместить его непосредственно на элемент ввода.
sholsinger 10.05.2010 16:48:52
На самом деле @sholsinger, лучше всего поместить его как в форму, так и в сам элемент ввода. Таким образом вы охватите всю нестандартность браузеров.
AviD 13.12.2010 12:11:25
К сожалению, с IE 11 Microsoft больше не уважает это input type="password". Надеюсь, другие браузеры не захотят удалять эту функцию.
SamHuckaby 21.03.2014 21:18:42
Установка autocomplete="off"на formэто единственное, что работало для Chrome.
Andrew 9.02.2016 18:41:27

Просто установите autocomplete="off". Для этого есть очень веская причина: вы хотите предоставить собственную функцию автозаполнения!

20
1.08.2015 10:45:01

На связанной или на самом деле, на совершенно противоположной ноте -

«Если вы являетесь пользователем вышеупомянутой формы и хотите снова включить функцию автозаполнения, используйте букмарклет« запомнить пароль »со страницы этой закладки . Он удаляет все autocomplete="off"атрибуты из всех форм на странице. Продолжайте бороться! "

22
6.01.2018 07:34:42

Почему вы сделали бы жизнь своего пользователя менее удобной?

«Пароли / данные кредитной карты / и т. Д. Не следует сохранять» - плохой аргумент: при автозаполнении браузеры в Mac OS X хранят такие значения в зашифрованной базе данных с разрешениями для каждого приложения. И наоборот, каков реалистический эффект autocomplete=off? Пользователь собирается написать его в незашифрованном текстовом файле или, что еще лучше, в заметке, прикрепленной к экрану.

Хорошо, что есть букмарклеты, подобные упомянутому Antti, и патчи, заставляющие движок вообще игнорировать атрибут .

Серьезно, я призываю вас пересмотреть использование этого атрибута. Это никому не выгодно.

-23
8.09.2008 19:42:51
Вы неправы. Один анекдот: В крошечных полях ввода, таких как регуляторы кол-во корзины, всплывающее окно предыдущих записей фактически скрывает текстовое поле хотя бы в одном браузере. Кроме того, зачем вам показывать их предыдущее количество? Использование этого атрибута делает жизнь пользователя более удобной. Это не черно-белая проблема. Есть ситуации, в которых это полезно, и в ситуациях, когда это плохо. Призывали ли вы людей быть осторожнее с использованием этого атрибута и перечислили несколько неинтуитивных причин, почему; этот ответ был бы довольно полезен.
Brian Webster 7.12.2011 21:41:37
Например, у меня есть несколько полей ввода, где пользователь должен вставить MAC-адрес, где вы должны иметь возможность вставлять только шестнадцатеричные символы ... это действительно раздражает, когда вы видите предложения, которые не имеют смысла. Также еще один случай, с которым я столкнулся ... при использовании планшетов Samsung попробуйте ввести имя пользователя для формы. Для некоторых планшетов вы получаете предложения там, вы никогда не хотите этого.
darkyndy 6.03.2014 10:40:43
Или поле пароля, которое следует оставить пустым, если вы не хотите менять его на странице профиля. В некоторых случаях это определенно приносит пользу всем заинтересованным сторонам
Carl 13.06.2014 09:23:01
В моем случае Chrome выполняет автозаполнение страницы администратора. Таким образом, вы редактируете пользователя X, и он автоматически заполняет вашу регистрационную информацию. Это, очевидно, проблема, но игнорирование autocomplete = "off" в Chrome означает, что если вы не будете осторожны, вы попытаетесь обновить пользователя с вашими учетными данными. Это не удастся. Ты будешь злиться.
ZiggyTheHamster 25.06.2014 19:00:46

Мы действительно использовали идею sasb для одного сайта. Это было медицинское программное приложение для управления кабинетом врача. Однако многие из наших клиентов были хирургами, которые использовали множество различных рабочих станций, в том числе полуобщественные терминалы. Таким образом, они хотели убедиться, что врач, который не понимает смысла автоматически сохраняемых паролей или не обращает внимания, не может случайно оставить свою регистрационную информацию легко доступной. Конечно, это было до того, как идея частного просмотра стала появляться в IE8, FF3.1 и т. Д. Несмотря на это, многие врачи вынуждены использовать браузеры старой школы в больницах с ИТ, которые не изменятся.

Итак, у нас была страница входа, генерирующая случайные имена полей, которые работали бы только для этого поста. Да, это менее удобно, но это просто ударяет пользователя по поводу того, что он не хранит информацию для входа на общедоступных терминалах.

20
16.09.2008 15:35:02

В дополнение к этому autocomplete=off, вы также можете сделать так, чтобы имена полей формы были рандомизированы кодом, который генерирует страницу, возможно, путем добавления некоторой специфичной для сеанса строки в конец имен.

Когда форма отправлена, вы можете удалить эту часть перед обработкой на стороне сервера. Это не позволит веб-браузеру найти контекст для вашего поля, а также поможет предотвратить атаки XSRF, поскольку злоумышленник не сможет угадать имена полей для отправки формы.

310
7.05.2018 07:56:55
Это гораздо лучшее решение по сравнению с использованием autocomplete = "off". Все, что вам нужно сделать, это сгенерировать новое имя при каждой загрузке страницы и сохранить это имя в $ _SESSION для будущего использования:$_SESSION['codefield_name'] = md5(uniqid('auth', true));
enchance 13.11.2011 09:03:22
Нет, это не лучшее решение, потому что источником предпочтения для этого параметра является пользовательский агент, также известный как веб-браузер. Существует разница между поддержкой определенного поведения (которое пытается сделать HTML 5) и его принудительным выбором, принимая решение от имени пользователя, что, по вашему мнению, является «гораздо лучшим решением».
amn 27.05.2013 17:09:03
Это решение может работать со всеми браузерами, поэтому в этом отношении оно «лучше». Тем не менее, amn правильно, решение отключить автозаполнение от имени ваших пользователей не очень хорошая идея. Это означает, что я отключаю автозаполнение только в очень специфических ситуациях, например, когда вы планируете создать свою собственную функцию автозаполнения и не хотите конфликтов или странного поведения.
macguru2000 15.05.2014 21:34:22
Что касается XSRF-атак, я не уверен, какой тип атаки вы представляли, но разве злоумышленник не мог просто снять конечную часть так же, как вы делаете на стороне сервера для идентификации полей? Или, если злоумышленник публикует поля, он не может добавить собственную случайную строку, так как она будет удалена сервером?
xr280xr 11.02.2015 20:10:34
@ macguru2000 создание собственного автозаполнения - вполне законный и распространенный вариант использования. Действительно, браузер должен облегчить разработчикам отключение автозаполнения, когда им нужно, вместо того, чтобы заставлять нас использовать подобные хаки
whoadave 6.05.2015 02:01:27

Как уже говорили другие, ответ autocomplete="off"

Тем не менее, я думаю, что стоит заявить, почему в некоторых случаях полезно использовать это, поскольку некоторые ответы на эти и повторяющиеся вопросы подсказывают, что лучше не выключать его.

Остановка браузеров, хранящих номера кредитных карт, не должна предоставляться пользователям. Слишком много пользователей даже не осознают, что это проблема.

Особенно важно отключить его в полях для кодов безопасности кредитных карт. Как говорится на этой странице :

«Никогда не сохраняйте защитный код ... его значение зависит от предположения, что единственный способ предоставить его - это прочитать его с физической кредитной карты, доказав, что лицо, поставившее его, действительно держит карту».

Проблема в том, что если это общедоступный компьютер (интернет-кафе, библиотека и т. Д.), То другие пользователи смогут легко украсть данные вашей карты, и даже на вашем компьютере вредоносный веб-сайт может украсть данные автозаполнения .

60
25.01.2018 08:59:39
если бы я зашел на сайт, и он запомнил мою карточку в выпадающем меню, я был бы очень несчастен. Я начинаю удивляться, как они могут быть такими небрежными.
Simon_Weaver 22.11.2009 05:13:54
Гораздо проще / более критический случай. Когда я захожу на страницу пользователя в административной части моего сайта, он пытается установить их имя пользователя и пароль в качестве моего имени пользователя и пароля администратора, не имея возможности сказать, что это не форма входа в систему. Я хочу, чтобы мой пароль администратора запомнился, но это критическая ошибка, когда он пытается применить запомненное имя пользователя / пароль ко всем пользователям, которые я затем редактирую.
rjmunro 17.12.2015 13:35:10

Чтобы избежать недопустимого XHTML, вы можете установить этот атрибут, используя javascript. Пример использования jQuery:

<input type="text" class="noAutoComplete" ... />

$(function() {
    $('.noAutoComplete').attr('autocomplete', 'off');
});

Проблема в том, что пользователи без JavaScript получат функцию автозаполнения.

12
12.12.2010 18:34:38
это не исключает недействительный xhtml, он просто динамически добавляет недопустимый бит после того, как вы проверили его, он объявил его действительным!
Andiih 16.04.2011 15:53:45
@Andiih: Так есть ли способ заставить автозаполнение работать в xhtml?
cherouvim 22.04.2011 15:14:16
Работать (или перестать работать, что является целью): да, как указано выше. Но действительный - нет.
Andiih 25.04.2011 10:46:06

Добавление

autocomplete="off"

к тегу формы отключит автозаполнение браузера (что ранее было введено в это поле) из всех inputполей в этой конкретной форме.

Проверено на:

  • Firefox 3.5, 4 бета
  • Internet Explorer 8
  • Хром
13
2.08.2012 09:26:21

Я думаю, что autocomplete=offподдерживается в HTML 5.

Спросите себя, почему вы хотите сделать это, хотя - это может иметь смысл в некоторых ситуациях, но не делайте это просто ради этого.

Это менее удобно для пользователей и даже не является проблемой безопасности в OS X (упомянутой Сореном ниже). Если вы беспокоитесь о том, что пароли пользователей могут быть украдены удаленно, регистратор нажатий клавиш может сделать это, даже если ваше приложение использует autcomplete=off.

Как пользователь, который выбирает браузер, запоминающий (большую часть) мою информацию, я нахожу это раздражающим, если ваш сайт не запомнил мою.

19
2.08.2012 01:14:13

Мне пришлось бы просить не согласиться с теми ответами, которые говорят, чтобы избежать отключения автозаполнения.

Первое, что нужно упомянуть, это то, что автозаполнение, не отключаемое явно в полях формы входа, является ошибкой PCI-DSS. Кроме того, если локальный компьютер пользователя скомпрометирован, злоумышленник может получить любые данные автозаполнения, поскольку они хранятся в открытом виде.

Конечно, есть аргумент в пользу юзабилити, однако, когда дело доходит до того, какие поля формы должны иметь отключенное автозаполнение, а какие нет, существует очень хороший баланс.

33
23.04.2014 03:54:36
Только что дошло до моего сведения, что IE не запускает события onChange при заполнении текстового ввода с помощью автозаполнения. У нас есть десятки форм и более тысячи событий onChange (проверки входных данных, бизнес-логика), разбросанных по ним. Недавно мы обновили IE до более новой версии, и неожиданно начали происходить странные вещи. К счастью, у нас запущено приложение для внутренней сети, и автозаполнение не является для нас проблемой UX, его проще просто отключить.
Robotron 9.06.2015 13:36:26
Если локальная машина пользователя скомпрометирована, они ввернуты, точка. На нем может быть установлен кейлоггер, может быть добавлен поддельный корневой сертификат SSL и все, что отправлено через фальшивый прокси и т. Д. У меня есть реальная причина отключить автозаполнение - когда я вхожу в систему как администратор и захожу на страницу редактирования пользователя, он назначает этот пользователь мой админ имя пользователя и пароль. Мне нужно предотвратить это поведение.
rjmunro 17.12.2015 13:48:38
Поставщики браузеров, похоже, следят за своими интересами. Сохраненные пароли = блокировка пользователя. А автозаполнение вкл / выкл было слишком простым - почему бы не сложный стандарт семантических подсказок ( html.spec.whatwg.org/multipage/… ), который, кстати, позволяет браузеру собирать ценные семантические данные с сайтов каждый пользователь посещает?
aro_tech 21.11.2017 13:38:49
Конкретный вариант использования, который я пытаюсь решить, заключается в следующем: они уже вошли в систему. Но теперь они собираются получить доступ к чему-то еще более чувствительному. Я хочу показать диалог, который заставляет их проходить повторную проверку подлинности, против возможности того, что они ушли, чтобы покурить, и плохой человек сел в свое кресло. перепробовал несколько методов, чтобы победить автозаполнение, и ничего не работает. теперь я думаю, может быть, по крайней мере, использовать старый добрый 'password = window.prompt ("Пожалуйста, введите свой пароль заново)" плюс имя пользователя в сеансе и попытаться его аутентифицировать.
David 12.01.2018 18:09:39

Вы можете использовать при вводе.

Например;

<input type=text name="test" autocomplete="off" />
9
2.11.2012 17:00:44

попробуйте это тоже, если просто autocomplete="off"не работает:

autocorrect="off" autocapitalize="off" autocomplete="off"
11
4.12.2012 18:45:43

Три варианта: Первый:

<input type='text' autocomplete='off' />

Во-вторых:

<form action='' autocomplete='off'>

В-третьих (код JavaScript):

$('input').attr('autocomplete', 'off');
31
29.10.2015 21:20:37
Первый и второй параметры должны быть одним из вариантов, поскольку они зависят от того, как браузеры обрабатывают это.
rybo111 13.06.2015 21:35:04
Попробовал $ formElement.attr ('автозаполнение', 'выкл'); и это не работает.
Ben Sinclair 1.11.2015 10:23:56

Ни одно из решений не помогло мне в этом разговоре.

Я наконец-то понял, что решение на чистом HTML не требует Javascript , работает в современных браузерах (кроме IE; нужно было хотя бы 1 перехват, верно?) И не требует отключения автозаполнения для всей формы.

Просто отключите автозаполнение на formи затем включите его для любого, который inputвы хотите, чтобы он работал в форме. Например:

<form autocomplete="off">
    <!-- these inputs will not allow autocomplete and chrome 
         won't highlight them yellow! -->
    <input name="username"  />
    <input name="password" type="password" />
    <!-- this field will allow autocomplete to work even 
         though we've disabled it on the form -->
    <input name="another_field" autocomplete="on" />
</form>
20
15.08.2013 19:02:55
Это было полностью то, что я искал!
Marco 24.11.2019 08:37:44

Большинство основных браузеров и менеджеров паролей (правильно, ИМХО) сейчас игнорируют autocomplete=off.

Почему? Многие банки и другие веб-сайты с высоким уровнем безопасности добавляются autocomplete=offна свои страницы входа «в целях безопасности», но это на самом деле снижает безопасность, так как люди автоматически меняют пароли на этих сайтах с высоким уровнем безопасности, чтобы их было легко запомнить (и, таким образом, взломать) после автозаполнения. был сломан.

Давным-давно большинство менеджеров паролей начали игнорировать autocomplete=off, и теперь браузеры начинают делать то же самое только для ввода имени пользователя / пароля.

К сожалению, ошибки в реализациях автозаполнения вставляют информацию об имени пользователя и / или пароле в неподходящие поля формы, вызывая ошибки проверки формы или, что еще хуже, случайно вставляя имена пользователей в поля, которые пользователь намеренно оставил пустыми.

Что делать веб-разработчику?

  • Если вы можете сохранить все поля пароля на странице сами по себе, это хорошее начало, так как кажется, что наличие поля пароля является основным триггером для срабатывания автозаполнения пользователя / пароля. В противном случае прочитайте советы ниже.
  • Safari замечает, что есть 2 поля пароля, и в этом случае отключает автозаполнение, предполагая, что это должна быть форма смены пароля, а не форма входа. Поэтому обязательно используйте 2 поля пароля (новый и подтвердите новый) для любых форм, где вы разрешаете
  • К сожалению, Chrome 34 будет пытаться автоматически заполнять поля с помощью user / pass всякий раз, когда видит поле пароля. Это довольно плохая ошибка, которая, надеюсь, изменит поведение Safari. Однако добавление этого в верхнюю часть формы отключает автозаполнение пароля:

    <input type="text" style="display:none">
    <input type="password" style="display:none">

Я еще не исследовал IE или Firefox полностью, но буду рад обновить ответ, если у других есть информация в комментариях.

234
24.01.2018 22:14:37
что вы подразумеваете под «добавление этого на вашу страницу, кажется, отключает автозаполнение для страницы:»
wutzebaer 7.05.2014 10:31:59
@wutzebaer, Chrome замечает скрытое поле пароля и останавливает автозаполнение. Как сообщается, это предотвращает кражу паролем информации без уведомления пользователя.
David W 1.12.2014 23:05:01
Ваш фрагмент кода предотвращает автозаполнение для полей входа в Chrome, Firefox, IE 8 и IE 10. Не тестировал IE 11. Хорошие вещи! Единственный простой ответ, который все еще работает.
Sam Watkins 19.05.2015 04:44:36
Кажется, ваша заметка о сафари работает и в Chrome, по крайней мере, по состоянию на декабрь 2015 года. У меня было поле имени пользователя и пароля в форме регистрации, которая автоматически заполнялась данными из формы входа. Создание двух type='password'полей на одной странице приводило к тому, что в браузере игнорировалось автозаполнение «сохранить пароль», что имело смысл, поскольку регистрационные формы обычно запрашивают пароль дважды, когда формы входа запрашивают его только один раз.
Matt Fletcher 20.12.2015 20:27:36
Кажется, больше не работает в Chrome 55, если только поле дополнительного пароля не скрыто, что противоречит цели.
jokkedk 10.10.2016 09:06:18

Иногда даже автозаполнения = выкл бы не допустить , чтобы заполнить учетные данные в неправильных полях, но не является пользователем или поле ник.

Этот обходной путь является дополнением к сообщению apinstein о поведении браузера.

Исправить автозаполнение браузера только для чтения и установить запись на фокус (нажмите и вкладка)

 <input type="password" readonly  
     onfocus="this.removeAttribute('readonly');"/>

Обновление: Mobile Safari устанавливает курсор в поле, но не показывает виртуальную клавиатуру. Новое исправление работает, как и раньше, но обрабатывает виртуальную клавиатуру:

<input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }" />

Демонстрационная версия https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Потому что браузер автоматически вводит учетные данные в неправильное текстовое поле !?

Я замечаю это странное поведение в Chrome и Safari, когда поля пароля имеют одинаковую форму. Я предполагаю, что браузер ищет поле пароля для вставки сохраненных учетных данных. Затем он автоматически заполняет (просто догадываясь из-за наблюдения) ближайшее поле ввода текста, которое появляется перед полем пароля в DOM. Поскольку браузер является последним экземпляром, и вы не можете его контролировать,

Это исправление только для чтения сработало для меня.

158
24.01.2018 22:58:31
Если нет никакого javascript, тогда вся форма терпит неудачу. -1
Jimmy Kane 10.07.2014 10:56:34
@JimmyKane ключом было бы также добавить атрибут, используя в первую очередь javascript (чего здесь не сделал dsuess, а просто для полноты).
trnelson 27.03.2015 17:58:17
@ tmelson Я понимаю, но все же зачем использовать js даже для отключения? Давайте избегать js для вещей, которые можно улучшить изначально. Я снова согласен с вами, хотя.
Jimmy Kane 27.03.2015 20:29:10
Это не работает в IE8, поле пароля только для чтения не редактируется при первом его фокусировании, только после того, как вы снова сфокусируете его. Хорошая идея, но, к сожалению, она слишком хакерская и небезопасная для использования.
Sam Watkins 19.05.2015 04:57:26
Это не корректно работать на всех браузерах (например , IE 11 и IE края). Как только readonlyудаляется, последующий выбор поля приводит к возврату автозаполнения.
Gone Coding 26.08.2016 14:18:18

Я пробовал бесконечные решения, а потом я нашел это:

Вместо того, чтобы autocomplete="off"просто использоватьautocomplete="false"

Это так просто, и это работает как шарм в Google Chrome!

20
1.08.2015 10:48:25
Как вы сказали в chrome, значение off не работает. Это должно быть «ложно»
azuax 14.05.2015 03:31:34
У меня работает на Chrome 44.0.2403.130.
GuiGS 13.08.2015 02:33:20
Попробовал это: $ formElement.attr ('autocomplete', 'false'); извините не работает.
Ben Sinclair 1.11.2015 10:24:56

Это проблема безопасности, которую браузеры игнорируют сейчас. Браузеры идентифицируют и сохраняют контент, используя входные имена, даже если разработчики считают, что информация является конфиденциальной и не должна храниться. Изменение имени входа между двумя запросами решит проблему (но все равно будет сохранено в кеше браузера, а также увеличит кэш браузера). Попросить пользователя активировать или деактивировать параметры в настройках своего браузера не является хорошим решением. Проблема может быть исправлена ​​в бэкэнде.

Вот мое исправление. Подход, который я реализовал в моей структуре. Все элементы автозаполнения генерируются со скрытым вводом, подобным этому:

<? $r = rmd5(rand().mocrotime(TRUE)); ?>
<form method="POST" action="./">
    <input type="text" name="<? echo $r; ?>" />
    <input type="hidden" name="__autocomplete_fix_<? echo $r; ?>" value="username" />
    <input type="submit" name="submit" value="submit" />
</form>

Затем сервер обрабатывает переменные записи следующим образом:

foreach ($_POST as $key => $val)
{
    if(preg_match('#^__autocomplete_fix_#', $key) === 1){
        $n = substr($key, 19);
        if(isset($_POST[$n]))$_POST[$val] = $_POST[$n];
    }
}

Значение можно получить как обычно

var_dump($_POST['username']);

И браузер не сможет предложить информацию из предыдущего запроса или от предыдущих пользователей.

Все работает как шарм, даже если браузер обновляет, хочет игнорировать автозаполнение или нет. Это был лучший способ решить эту проблему для меня.

11
24.01.2018 19:33:38

Ни один из упомянутых здесь хаков не работал для меня в Chrome. Здесь обсуждается вопрос: https://code.google.com/p/chromium/issues/detail?id=468153#c41.

Добавление этого внутри <form>работ (по крайней мере, пока):

<div style="display: none;">
    <input type="text" id="PreventChromeAutocomplete" name="PreventChromeAutocomplete" autocomplete="address-level4" />
</div>
10
2.07.2015 10:40:19
Обратите внимание, что при использовании этого метода FireFox все равно будет автоматически заполнять это скрытое поле, которое будет включено при отправке формы. Скорее всего, это будет плохо, поскольку пароль будет передан по потенциально незащищенному соединению. К счастью, добавление maxlength="0"не позволяет Firefox автоматически заполнить поле.
Mikal Schacht Jensen 7.11.2017 12:30:15

Я знаю, что это старый пост, но может быть важно знать, что Firefox (я думаю, что только firefox) использует значение, ismxfilledкоторое в основном вызывает автозаполнение.

ismxfilled="0" за OFF

или

ismxfilled="1" за ON

4
13.08.2015 18:22:15

Добавление autocomplete="off"не собирается сокращать это.

Измените атрибут типа ввода на type="search".
Google не применяет автозаполнение для входов с типом поиска.

12
28.10.2015 16:32:06
Это взломать Поле не является полем поиска. В будущем это может вызвать проблемы.
Roel 31.12.2015 13:24:53

Safari не меняет свое мнение об автозаполнении, если вы устанавливаете autocomplete="off"динамически из javascript. Тем не менее, это будет уважать, если вы делаете это на основе поля.

$(':input', $formElement).attr('autocomplete', 'off');
3
1.11.2015 10:28:45
<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        try {
            $("input[type='text']").each(function(){
                           $(this).attr("autocomplete","off");
                        });
        }
        catch (e)
        { }
    });

</script>
5
16.11.2015 13:02:37
Чем это отличается от установки в html значения autocomplete = off, что в наши дни не работает?
Andrew 8.11.2018 16:29:00

Chrome планирует поддержать это .

На данный момент лучшее предложение - использовать тип ввода, который редко заполняется автоматически.

Chrome Обсуждение

<input type='search' name="whatever" />

чтобы быть совместимым с firefox, используйте обычный autocomplete = 'off'

<input type='search' name="whatever" autocomplete='off' />
6
10.12.2015 02:21:36

Вы можете отключить автозаполнение, если вы удалите formтег, то же самое было сделано моим банком, и мне было интересно, как они это сделали. Он даже удаляет значение, которое уже запомнилось браузером после удаления тега.

6
25.02.2016 15:27:56

Это то, что мы назвали автозаполнением текстового поля. введите описание изображения здесь Мы можем отключить автозаполнение текстового поля двумя способами:

  1. По метке браузера
  2. По коду

    Для отключения в браузере зайдите в настройки

    Чтобы раствориться в просмотре перейдите к настройке

Перейдите в предварительные настройки и снимите флажок, а затем Восстановите.

Перейдите в предварительные настройки и снимите флажок, а затем Восстановите.

Если вы хотите отключить в коде метки, вы можете сделать следующее :
Использование AutoCompleteType="Disabled":

<asp:TextBox runat="server" ID="txt_userid" AutoCompleteType="Disabled"></asp:TextBox>  

Установив форму autocomplete="off":

<asp:TextBox runat="server" ID="txt_userid" autocomplete="off"></asp:TextBox> 

Установив форму autocomplete="off":

<form id="form1" runat="server" autocomplete="off">  
    //your content
</form>  

Используя код на странице .cs

protected void Page_Load(object sender, EventArgs e)  
    {  
    if(!Page.IsPostBack)  
    {  


        txt_userid.Attributes.Add("autocomplete", "off");  

    }  
}  

Используя Jquery

head runat="server">  
<title></title>  
<script src="Scripts/jquery-1.6.4.min.js"></script>  
<script type="text/javascript">  
    $(document).ready(function () {  
        $('#txt_userid').attr('autocomplete', 'off');  

    });  

</script>  
5
21.07.2016 07:41:39

Немного опоздал к игре ... но я только столкнулся с этой проблемой и попробовал несколько сбоев, но этот работает для меня, найденный на MDN

В некоторых случаях браузер будет продолжать предлагать значения автозаполнения, даже если атрибут автозаполнения отключен. Такое неожиданное поведение может быть довольно загадочным для разработчиков. Хитрость для принудительного принудительного завершения - это присвоить атрибуту случайную строку следующим образом:

autocomplete="nope"
14
22.03.2016 19:38:37