Автозаполнение Chrome при частичной обратной передаче ASP.NET (панель обновления) - PullRequest
0 голосов
/ 27 февраля 2019

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

ОБНОВЛЕНИЕ: автозаполнение, в частности, происходит, когда частичная обратная передача выполняется на панели обновлений

В последнее время (версии Chrome 70+?), Chrome начал агрессивное автозаполнение полей ввода в нашем веб-приложении при выполнении частичной обратной передачи.(Мы используем веб-формы asp.net)

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

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

<input type="search" class="newH4" placeholder="Search">

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

Вот скриншот автозаполнения:

enter image description here

Кроме того, у меня есть другие поля, такие как ввод суммы в долларах, которая также заполняется электронным письмом.Есть ли способ предотвратить это в последних версиях Chrome?

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

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

Например autocomplete="rjftgh"

0 голосов
/ 28 февраля 2019

Примечание: простое изменение атрибута автозаполнения на случайную строку или даже специальный атрибут, такой как «новый пароль», НЕ работает для этой проблемы.

В конечном итоге я нашел решение.Это скорее хак, поэтому я не слишком доволен этим, но это происходит из ответа Майка Нельсона на следующий вопрос: Отключение автозаполнения Chrome

Его решение заключается в добавлении элементов ввода сих свойство display установлено в «none» над входами, которые заполняются автоматически.Идея состоит в том, что эти скрытые поля поглощают вместо автозаполнения.

Я также узнал немного больше о проблеме с ASP.NET и панелями обновления.Когда панель обновления запускает частичную обратную передачу, она использует библиотеку AJAX.Библиотека связывается с сервером для завершения обновления. Что бы AJAX ни делал в фоновом режиме, он также запускает повторное выполнение логики автозаполнения chrome. Другими словами, всякий раз, когда я динамически добавлял пользовательский элемент управления, первое поле ввода в html-структуре этого пользовательского элемента заполнялось автоматическисохраненная электронная почта пользователя.

Опять очень странное и плохое поведение, но поля ввода «none» сделали свое дело.

Если Chrome снова изменит свою логику автозаполнения (они будут), я обновлю свой ответс надеждой на лучшее решение.

0 голосов
/ 27 февраля 2019

Если у вас есть поле пароля в вашей форме, вы можете добавить этот атрибут - autocomplete="new-password"

<input type="password" placeholder="Password" autocomplete="new-password">

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