Как отключить автозаполнение формы firefox без событий изменения? - PullRequest
5 голосов
/ 29 мая 2010

Таким образом, Firefox имеет изящный механизм, который будет пытаться автоматически заполнять значения в полях при перезагрузке страницы или использовании кнопки «Назад». Это здорово, и все, кроме случаев, когда у вас есть что-то вроде выпадающего меню, которое при установке значения изменяет страницу с помощью ajax.

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

Есть ли хороший способ "исправить" это поведение, чтобы оно работало для пользователя, как и ожидалось:

a) Мы хотим, чтобы браузер автоматически заполнялся, потому что это хороший пользовательский опыт.

b) Все еще хотите, чтобы событие onchange сработало.

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

У кого-нибудь есть лучшее решение? Есть ли библиотека, которая уже делает это?

(Использование Rails 2.3.5 + jQuery)

Ответы [ 2 ]

1 голос
/ 31 августа 2010

К сожалению, по-видимому, нет способа фактически отключить firefox из автозаполнения полей при перезагрузке страницы или с помощью кнопки «назад». К счастью, значения уже присутствуют во время события $(document).ready(), так что, пока все в этих входах могут иметь .change, даже изначально запущенные на них, не имеет значения, откуда пришли значения, и это просто работает.

0 голосов
/ 29 мая 2010

Я думаю, вы можете добавить autocomplete="off", чтобы браузер не заполнял эти поля.

У вас также может быть функция, которая запускает onload и в основном проверяет, соответствует ли значение поля значению, указанному в параметре value="".

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