Html autocomplete off не работает

autocomplete = ‘off’ не работает, когда тип ввода пароль и сделать поле ввода над ним, чтобы включить автозаполнение

У меня есть форма с автозаполнением отключена, но она не работает и делает автозаполнение включенным в firefox и более поздней версии chrome

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

21 ответов

браузер обычно имеет две связанные, но разные функции в отношении форм:

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

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

есть крайний случай с формами, помеченными как autocomplete=»off» . Что произойдет, если это форма входа в систему и пользователь имеет сохраненные ранее логин/пароль? На самом деле удаление пароль из локальной базы данных выглядит неуместным, поэтому, вероятно, браузер этого не делает. (Фактически, данные из формы автозаполнения также не стираются.) Firefox решает дать пользователю власть: у вас есть пароль, поэтому я позволю вам его использовать. Chrome решает дать власть сайту.

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

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

Я не уверен, что это хорошая практика, но он решит проблему.

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

Читайте также:  Видеорегистратор навител r200nv как правильно настроить

это предотвратит автоматическое заполнение пароля в поле ввода (type= «password»).

просто добавить autocomplete=»new-password» атрибут поля ввода пароля.

Источник

Как отключить autocomplete в современных браузерах, в том числе в Chrome?

Столкнулся с проблемой, поле, которое не имеет никакого отношения к email автоматически заполняется email адресом который когда-то где-то указывался, пока заметил только в Chrome, но вычитал, что во всех современных браузерах такое, причем autocomplete=»off» не работает.

Вот какое-то такое «решение» нашел в сети:

— пока не пробовал как работает т.к. нет понимая, что тут за костыли вообще и как они работают. что за бред вообще 2 input-а с одинаковым name, один из которых скрыт по средствам css )

Кто-нибудь знает как решить проблему без костылей?

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

Для Chrom’а версии 49.0.2623.112 m помогло следующее:

самое странное:
я указал autocomplete=»new-password» только для одного поля в форме, но автозаполнение отключилось у всех полей Оо

UPD: хах! Вообщем есть форма, в ней 10 полей, поле юзернейм и пароль автозаполнены. применяю autocomplete=»new-password» к полю юзернейм — проблема остается, применяю к полю с паролем (оно в конце формы) и трюк срабатывает, причем у поля юзернейм тоже отключается автозаполнение ДАЖЕ БЕЗ autocomplete=»new-password»
Не знаю насколько кроссбраузерно, кто-нибудь может проверить?

Источник

autocomplete=»off» does not work in chrome #247

Comments

sdwvit commented Aug 16, 2018 •

Expected behaviour: chrome native autocomplete is not drawn on top of autocomplete.js autocomplete.

  • use autocomplete=»new-password»
  • insert input right before your autocompleted input

The text was updated successfully, but these errors were encountered:

Haroenv commented Aug 17, 2018

hmm, this doesn’t happen to me on busbud, did you fix it there? This definitely seems like a nasty bug in Chrome. Maybe it has something to do with having autofill enabled on that website before?

Could you share a bit more in which setup is necessary for this to happen?

Haroenv commented Aug 17, 2018

Note that the off value is the one that makes it work in FF and Safari, so I fear it will be hard to value both of those requirements

sdwvit commented Aug 17, 2018 •

@Haroenv yes, fixed yesterday with one of the workarounds, specifically, by adding additional hidden input

Maybe it has something to do with having autofill enabled on that website before?

exactly, you have to be returning user, which uses our search form multiple times

see video of repro:

Unfortunately, I have no right to setup preview env for you to see bug on busbud in action. Let me know if video is unclear.

Читайте также:  Почему беспроводная клавиатура то работает то не работает

Haroenv commented Aug 17, 2018

Thanks for your detailed bug report by the way, we will try to see if we can find a solution. It might be quite simple to implement here since we already have two inputs. It would be really nice if you already have to solution to take a look if you can do a PR 😄

sdwvit commented Aug 17, 2018

Can’t promise, but will try to find time to do a pr on weekends.

Haroenv commented Aug 18, 2018

Cool! If you don’t find time to do a PR, a clear suggestion on which attribute to change where would also be sufficient, it’s still pretty confusing what to put where 🙂

Источник

Как отключить автозаполнение форм с помощью html 5?

Собственно сабж.
Пробовал так:

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

UPD.

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

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

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

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

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

До

После

Можно отключить автозаполнение, если в момент фокусировки в поле поменять у поля значение name на произвольное. А когда пользователь выходит из input, то поменять значение name обратно. В этом случае браузер Хром не выводит подсказок, т.к. каждый раз значение name новое.
Необходимо подключать jquery, а ниже подключить сам скрипт.

Исходник (взял отсюда только код, который генерит значение name) https://github.com/terrylinooo/jquery.disableAutoFill

Что получилось в итоге:

Это сама форма, показываю кусок формы, с полями ввода, для которых отключаю подсказки хрома. Оба инпута имеют класс «only-ru»:

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

в хроме и файрфоксе работает. в сафари ещё не проверял — нет под рукой.

я в vue шаблонах так сделал:

никакого jquery конечно же. всё уже работает.
focusCounter само собой в дате объявить. можно один на все инпуты формы

Источник

«AutoComplete=Off» not working on Google Chrome Browser [duplicate]

I know there is one similar question on Stackoverflow, but none of the solution there worked for me.

Читайте также:  Причина не работает картридж

As you can see, I put autocomplete=off on BOTH the form and the input field, but Google Chrome still displays this autocompletion list. This doesn’t happen in other browsers like Firefox and Safari.

Any other solution other than putting autocomplete=off on the form tag??

6 Answers 6

This is due to a design decision made by Chrome (arguably any Chrome user wants this behaviour).

The reason for this is what Google calls priority of constituencies:

  1. The user is king! What they want matters most.
  2. The user wants to use a password or autofill manager.
  3. The web application says it doesn’t want the form values to be saved.
  4. The user’s choice is more important, so the form values are retained.

There are ways to work round, but it’s highly likely that those will be fixed in future Chrome versions as the Chrome developers regard their behaviour as correct and your workaround as a bug.

Even while your workaround does work it creates confusing behaviour for the user — they expect autofill to work according to their settings.

Many users already chose to ignore app autocomplete settings with plug-ins or scripts that just remove any autocomplete=off in the page — they already had that choice anyway.

You’re best off designing with the assumption that autocomplete can work and accounting for that.

Personally I hate it when sites don’t recall my password and override those that do with browser extensions. However I also create applications for my job and there recalling passwords is seen as a security risk, as a user might leave their machine unlocked. In my personal opinion users not locking their machines is an issue for local IT, not the application, and local IT can disable all password autocomplete for all web applications if their users can’t be trusted.

Unfortunately to pass the security checks some applications still have to disable autocomplete, there are ways to do it, but they’re all horrible. The first hack is to make the password input completely new:

I’ve inlined everything to simplify, but this should give you an idea of the hack — no plug in or browser can auto-fill an input with a completely new name.

This solution breaks if you properly build in ARIA and labels (as that lets the browser/extension find and autofill the input from the label).

So option 2, also horrible, is to wait until after the autocomplete has fired and then blank the field:

Источник

Оцените статью