Отключить автозаполнение chrome js

Обновлено: 07.07.2024

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

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

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

По данным документация разработчика Mozilla атрибут элемента формы autocomplete предотвращает кэширование данных формы в старых браузерах.

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

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

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

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

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

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

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

  • если вы можете сохранить все поля пароля на странице сами по себе, это отличный старт, поскольку кажется, что наличие поля пароля является основным триггером для автозаполнения пользователя/прохода. В противном случае, прочитайте советы ниже.
  • сафари замечает, что есть 2 поля пароля и отключает автозаполнение в этом случае, предполагая, что это должна быть форма изменения пароля, а не форма входа в систему. Поэтому просто обязательно используйте 2 поля пароля (new и confirm new) для любых форм, где вы разрешаете

Chrome 34, к сожалению, будет пытаться автозаполнение полей с пользователем / pass всякий раз, когда он видит поле пароля. Это довольно плохая ошибка, которая, надеюсь, изменит поведение Safari. Однако добавление этого в верхнюю часть формы, похоже, отключает автозаполнение пароля:

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

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

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

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

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

Это readonly-fix выше работало для меня.

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

раствор для Хром-добавить autocomplete="new-password" к паролю типа входного сигнала.

Chrome всегда автозаполняет данные, если он находит поле введите пароль, достаточно, чтобы указать для этой коробки autocomplete = "new-password" .

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

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

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

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

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

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

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

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

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

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

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

Хотя autocomplete=“off” работал, Chrome теперь игнорирует это значение и в любом случае отображает пользовательский интерфейс. Единственное, что я могу найти, работающее с Chrome 66/67 в OSX, - это недопустимое значение, например autocomplete=“blah” . Хотя это кажется слишком схематичным, и мы уже экспериментировали с этим раньше, и в некоторых ситуациях / версиях Chrome это игнорируется.

Кто-нибудь нашел надежный способ отключить это с помощью HTML / Javascript?

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

Отключить автозаполнение Chrome. Удобно для форм CRUD, когда вы не хотите, чтобы ввод имени пользователя / пароля автоматически заполнялся браузером.

Для React вы могли бы сделать что-то вроде этого -

Если все, что вам нужно сделать, это получить доступ к входному значению в другом месте по идентификатору, например,

(Отчасти это то, как работает плагин jQuery Disable Auto Fill).

Если вам не нужно сохранять пароль в браузере, вот решение, использующее только CSS. Выберите type = "text" для поля ввода:

И добавьте стиль для ввода, который скрывает текст:

СТАРЫЙ ОТВЕТ:

Вы можете попробовать грубую силу:

Я наткнулся на более простое и чистое решение этой проблемы. Если вы по умолчанию используете type для ввода чего-то странного, например time , а затем динамически меняете type с помощью JavaScript при загрузке страницы, Chrome будет искать n-й time ввод и в конечном итоге игнорируя ваши входные данные.

Вы можете просто поставить autocomplete = "new-password" в поле пароля и все. Это должно работать просто отлично!

Использование jQuery в сентябре 2019 года. Единственное, что близко к согласованности, я достиг для отключения автозаполнения / автозаполнения для всей формы:

Затем примените класс к своим данным, например:

Вы должны удалить атрибут, потому что, если слишком много входов имеют autocomplete , тогда chrome снова начинает их игнорировать :)

Не очень элегантное решение, но это работает. Автозаполнение срабатывает на документ готов. Если мы отключим поля ввода на секунду, это не удастся, а затем мы сможем снова включить формы ввода. Это может быть полезно для форм входа в систему и пользовательских форм на Cruds. Лучшим подходом будет установить наложение с анимацией загрузки или что-то более удобное для пользователя.

Работа для меня

autocomplete="off" больше не работает . Единственное, что работает на 2019 , это autocomplete="new-password"

Добавьте атрибут автозаполнения со значением имени пользователя для имен пользователей.

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

Добавьте атрибут автозаполнения со значением current-password для поля пароля в форме входа.

Добавьте атрибут автозаполнения со значением new-password для поля пароля в формах регистрации и смены пароля.

Если вам требуется, чтобы пользователь дважды вводил свой пароль во время регистрации или обновления пароля, добавьте атрибут автозаполнения нового пароля в оба поля.

В настоящее время (май 2019 г.) только autocomplete="new-password" работает хорошо.

Ничего не получается. На поле всё равно срабатывает авто заполнение.
Что я делаю не так?

702101f4edb640ed8c402ef764f61d36.JPG

UPD.

  • Вопрос задан более трёх лет назад
  • 44942 просмотра

Оценить 1 комментарий

bootd

гениально!
но таки уже не работает
chrome, 15.07.2020г
таки дела

Mirami97

гениально!
Но не работает
22.06.2021
chrome Версия 91.0.4472.114 Миржалол Мирхомитов, Гениально! 04.09.2021 всё работает.
chrome Версия 92.0.4515.159 (Официальная сборка), (64 бит)
такие дела))

Mirami97

14.10.2021. Chrome Версия 94.0.4606.81 (Официальная сборка), (64 бит) до сих пор работает)

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

здесь мы отключаем автозаполнение пароля, а также чтобы не было выпадающего списка выбором паролей там где это не нужно:
- оборачиваем форму в блок со свойством position:relative
- после поля прописываем блок с position:absolute top:0 left:0 width:100% height:100%
- создаем событие onclick, для класса field где вызываем фокус для нашего поля внутри

разница на скриншотах

5c7b1b5e59913162932758.jpg

До

5c7b1b47ab6ba995507479.jpg

После

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

Мы используем виджет JavaScript для обеспечения возможности поиска по типу в веб-формах, но этот пользовательский интерфейс постоянно перекрывается с помощью автозаполнения Chrome).

В то время как autocomplete=“off” раньше работал, Chrome, кажется, игнорирует это значение сейчас и в любом случае показывает интерфейс пользователя. Единственное, что я могу найти, это работает с Chrome 66/67 в OSX - недопустимое значение, например autocomplete=“blah” . Хотя это кажется слишком схематичным, и мы экспериментировали с этим раньше, и это игнорируется в определенных ситуациях/версиях Chrome.

Кто-нибудь нашел надежный способ отключить это с помощью HTML/Javascript?

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

jquery.disable-автозаполнение

Отключить автозаполнение Chrome. Удобно для форм CRUD, когда вы не хотите, чтобы ввод имени пользователя/пароля автоматически заполнялся браузером.

Вы можете просто поставить autocomplete = "new-password" в поле пароля и все. Это должно работать просто отлично!

autocomplete="off" больше не работает . Единственное, что работает с 2019 - это autocomplete="new-password"

Добавьте атрибут автозаполнения со значением имени пользователя для имен пользователей.

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

Добавьте атрибут автозаполнения со значением current-password для поля пароля в форме входа.

Добавьте атрибут автозаполнения со значением new-password для поля пароля в формах регистрации и смены пароля.

Если вам требуется, чтобы пользователь дважды вводил свой пароль во время регистрации или обновления пароля, добавьте атрибут автозаполнения нового пароля в оба поля.

Работа для меня

Использование jQuery в сентябре 2019 года. Единственное, что близко к согласованности, я достиг для отключения автозаполнения/автозаполнения для всей формы:

Затем примените класс к своим данным, например:

Вы должны удалить атрибут, потому что если слишком много входных данных имеют autocomplete , тогда chrome снова начинает игнорировать его :)

Не очень элегантное решение, но это работает. Автозаполнение срабатывает на документ готов. Если мы отключим поля ввода на секунду, это не удастся, а затем мы сможем снова включить формы ввода. Это может быть полезно для форм входа в систему и пользовательских форм на Cruds. Лучшим подходом будет установить наложение с анимацией загрузки или что-то более удобное для пользователя.

Спасибо за возобновление этого обсуждения. Я искал другие места, чтобы опубликовать свое решение, но ни одно из них не принимает новые ответы. Если вы устали от всех других "решений" и, похоже, не можете заставить их работать на вас, могу ли я предложить свою функцию уничтожения - когда вы не просто "спрашиваете" Chrome чтобы остановить эту чушь, но скорее командную.

Как отключить функцию автозаполнения Chrome на определенном <input> , чтобы предотвратить их автоматическое заполнение при загрузке страницы?

В то же время мне нужно включить автозаполнение, так что пользователь все еще может видеть список предложений, нажимая на ввод или введя его. Это можно сделать?

EDIT: Не стесняйтесь использовать простой Javascript или jQuery, если вы считаете, что это необходимо или вы чувствуете, что это упростит ваше решение.

Здесь волшебство, которое вы хотите:

Chrome намеренно игнорирует autocomplete="off" и autocomplete="false" . Тем не менее, они помещают new-password в качестве специального предложения, чтобы остановить автоматическое заполнение новых форм пароля.

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

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

Chrome обнаружит два ввода пароля и не будет автоматически заполнять поля пароля. Однако поле будет скрыто через CSS. Таким образом, пользователь увидит только одно поле пароля.

Я также добавил некоторые дополнительные атрибуты "x-autocompletetype", который представляет собой специальную функцию автозаполнения хрома. В моем примере хром будет автозаполнять имя, фамилию и адрес электронной почты, а не поле пароля.

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

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

Не требуется jQuery, чистый JavaScript.

После большой борьбы я обнаружил, что решение намного проще, чем вы могли себе представить:

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

Я наткнулся на странное хромовое поведение автозаполнения сегодня. Это случилось, чтобы включить в поля, называемые "embed" и "postpassword" (заполняя логин и пароль) без видимых причин. Эти поля уже отключили автозаполнение.

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

Перед реальным паролем добавьте эти два фиктивных поля:

Только этот, наконец, полностью отключил автозаполнение для моей формы.

Позор, что отключение такого базового поведения - это тяжелый и хакерский.

Читайте также: