Отключите автозаполнение HTML-форм Firefox, но сохраняйте автозаполнение - PullRequest
4 голосов
/ 01 февраля 2011

Более новые версии Firefox имеют новую «функцию», которая запоминает материал, который был заполнен в форме, и заново заполняет форму этими значениями при обновлении (может быть, и в других ситуациях?).

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

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

если я поставлю

autocomplete='off'

в моем html эффект отключен, но при этом теряется автозаполнение (очевидно). проблема заключается в заполнении полей после обновления без каких-либо действий пользователя.

Ответы [ 7 ]

1 голос
/ 05 февраля 2011

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

1 голос
/ 05 февраля 2011

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

0 голосов
/ 03 марта 2014

Решение Javascript (установка пустых значений полей при загрузке или обновлении страницы через Ajax) уже упоминалось.

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

0 голосов
/ 26 августа 2013

Вот решение jQuery, которое я собрал.

Он не отключает автозаполнение, а переопределяет поля после того, как браузер сделал это.

Я пытался бороться с автозаполнением Chromes, когда сделал это.Простое использование .val ('') само по себе не сработало, так как оно сработало до того, как функция автозаполнения chromes пнула его.

0 голосов
/ 16 апреля 2013

После загрузки страницы, но до того, как вы выполните какую-либо другую логику, вы должны сделать значение пустым:

inputElem.value = '';
0 голосов
/ 02 февраля 2011

Автозаполнение не новость. У каждого браузера есть это. Посмотреть это http://www.w3.org/Submission/web-forms2/#the-autocomplete

Автозаполнение? Уверены ли вы? Проверьте атрибут значения вашего входа с помощью Firebug (дополнение Firefox). Проверьте ваш пост и ответ в вашем Ajax. Может быть, ваш ajax заполняет его за кулисами.

Кстати: переназначение для отключения любой внешней панели инструментов. Для Firefox / IE / Chrome / etc есть несколько панелей инструментов, которые автоматически заполняют данные для пользователя. Предупреждение с этим.

0 голосов
/ 01 февраля 2011

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

Я предлагаю более надежную проверку - на стороне клиента и сервера.

...