Автозаполнение от ложного?
Недавно я столкнулся с проблемой, когда я хотел отключить автозаполнение во всех браузерах.
Chrome имеет новую функцию в настройках, где вы можете добавить номер карты. И требование было также отключить это.
То, что работало во всех браузерах, состояло в том, чтобы сделать это autocomplete = false на уровне формы.
Но это не соответствует правилам w3, где они принудительно используют autocomplete = off | on.
Может кто-нибудь объяснить мне, почему false работает во всех браузерах?
даже ie8, все firefox, safari и т.д. Но это не соответствует требованиям.
Ответы
Ответ 1
Вы правы. Если для атрибута autocomplete установлено значение "off", автозаполнение Chrome в более поздних версиях Chrome не отключается.
Однако вы можете установить автозаполнение на что угодно, кроме "on" или "off" ("false", "true", "nofill"), и это отключит автозаполнение Chrome.
Такое поведение, вероятно, связано с тем, что атрибут autocomplete ожидает значение "on" или "off" и ничего не делает, если вы даете ему что-то еще. Так что, если вы дадите ему что-то кроме этих значений, автозаполнение не будет выполнено.
В текущей версии Chrome было установлено, что установка атрибута autocomplete в значение "off" теперь действительно работает.
Кроме того, я обнаружил, что это работает, только если вы установите атрибут autocomplete в каждом <input>
формы.
Ответ на эту неоднозначность был в списках ошибок Chromium здесь.
Отказ от ответственности: это было признано верным в версии Chrome 47.0.2526.106 (64-разрядная версия)
Ответ 2
После версии Chrome 72.XX:
Chrome игнорирует autocomplete="off"
autocomplete="no-fill"
или autocomplete="randomText"
как на уровне поля, так и на уровне формы.
Единственный вариант, который я нашел, - следовать обходному пути, выбрав Chrome, чтобы заполнить автозаполнение пустого текстового поля и пароля, а затем скрыть их от пользователя.
Помните, что старый метод с style="display: hidden"
или style="visibility: hidden"
также игнорируется.
FIX:
Поэтому создайте DIV
с height: 0px;overflow:hidden
который по-прежнему будет отображать элементы HTML, но скрывать их от пользователя.
Образец кода:
<div style="overflow: none; height: 0px;background: transparent;" data-description="dummyPanel for Chrome auto-fill issue">
<input type="text" style="height:0;background: transparent; color: transparent;border: none;" data-description="dummyUsername"></input>
<input type="password" style="height:0;background: transparent; color: transparent;border: none;" data-description="dummyPassword"></input>
</div>
Просто добавьте вышеуказанный div в HTML-форму, и это должно работать!
Ответ 3
Используйте autocomplete = "my-field-name" вместо autocomplete = "off". Будьте осторожны, как вы это называете, так как некоторые значения по-прежнему распознаются как autocomplete = "страна". Я также обнаружил, что использование атрибута placeholder помогло в некоторых сложных сценариях.
Пример: <input type="text" name="field1" autocomplete="my-field-name1" placeholder="Enter your name">
Chrome недавно прекратил использовать autocomplete = "off", потому что они думали, что разработчики злоупотребляли им, не особо задумываясь о том, должна ли форма автозаполняться. Таким образом, они удалили старый метод и заставили нас использовать новый, чтобы гарантировать, что мы действительно не хотим, чтобы он автозаполнялся.
Ответ 4
$("#selector").attr("autocomplete", "randomString");
Это работало надежно каждый раз для меня.
Примечание. Я вызвал этот LOC в модальном шоу.
Ответ 5
autocomplete = "none" отлично работает для angularjs и angular 7
Ответ 6
Автоматическое завершение значения, кроме выключения и ложных срабатываний.
autoComplete="nope"
autoComplete="foo"
autoComplete="boo"
autoComplete="anythingGoesHere"
Проверено на хром 76 и реагирует 16.9.0
Ответ 7
этот код работает для меня в Chrome версии 75.0.3770.100 (официальная сборка) (64-разрядная версия)
Спасибо
Ответ 8
Как дополнение к ответу @camiblanch
Добавление autocomplete="off"
не сократит его.
Измените атрибут типа ввода на type="search"
.
Google не применяет автоматическое заполнение к входам с типом поиска.