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

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

Ответы [ 64 ]

20 голосов
/ 08 сентября 2008

На родственной или фактически на совершенно противоположной ноте -

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

19 голосов
/ 16 сентября 2008

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

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

19 голосов
/ 05 августа 2008

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

19 голосов
/ 01 мая 2015

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

Вместо autocomplete="off" просто используйте autocomplete="false"

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

18 голосов
/ 15 августа 2013

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

Я наконец-то нашел решение на чистом 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>
18 голосов
/ 24 февраля 2011

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

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

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

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

17 голосов
/ 05 августа 2008

Это был нестандартный способ сделать это (я думаю, что Mozilla и Internet Explorer все еще поддерживают это), но расстраиваться с ожиданиями пользователей - плохая идея.

Если пользователь вводит данные своей кредитной карты в форму, а затем позволяет другому пользователю использовать этот браузер, это не ваша задача. :)

16 голосов
/ 30 декабря 2016

Это работает для меня.

<input name="pass" type="password" autocomplete="new-password" />

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

13 голосов
/ 20 марта 2018

Лучшее решение:

Запретить автозаполнение имени пользователя (или адреса электронной почты) и пароля:

<input type="email" name="email"><!-- Can be type="text" -->
<input type="password" name="password" autocomplete="new-password">

Запретить автозаполнение поля:

<input type="text" name="field" autocomplete="nope">

Пояснение: autocomplete продолжает работу в <input>, autocomplete="off" не работает, но вы можете изменить off на случайную строку, например nope.

Работает в:

  • Хром: 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 и 64

  • Firefox: 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 и 58

13 голосов
/ 22 марта 2016

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

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

autocomplete="nope"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...