Включение автозаполнения формы браузера - PullRequest
51 голосов
/ 03 января 2012

Я делаю регистрационную форму для моего сайта. Он содержит различные стандартные поля формы. Например: имя, адрес, номер телефона, имя пользователя, пароль и т. Д.

Когда я дважды щелкаю поле (в Chrome 16), чтобы автоматически заполнить свой адрес, я получаю следующее сообщение:

На этой веб-странице отключено автоматическое заполнение этой формы.

Я не отключил его, так как мне его включить? Я попытался добавить autocomplete="on" к тегу <form> и (к некоторым) тегам <input>, но это не помогло.

Нужно ли добавлять autocomplete="on" к каждому полю? Кроме того, как браузер узнает, что это за поле? Нужно ли называть поля чем-то особенным?

Еще один вопрос: существует ли какое-то событие onautocomplete, которое запускается при автоматическом заполнении формы? В моей форме, когда вы вводите почтовый индекс, он просматривает нашу базу данных (через AJAX), а затем получает штат и город (город и штат являются раскрывающимися списками, поскольку почтовые индексы могут быть для нескольких городов) и заполняет их для тебя. Я надеялся, что смогу выполнить этот прогон после автоматического заполнения формы.

P.S. Я использую плагин jQuery проверки формы , если это имеет значение.

Ответы [ 2 ]

72 голосов
/ 03 января 2012

Проблема заключалась в том, что в теге формы не было method="POST".

После поиска сообщения в Google я нашел отчет об ошибке и один из комментариев упомянутых method="POST".

Я добавил method="POST", и вуаля! Автозаполнение работает.

В некоторых случаях вам также может понадобиться добавить action, если в форме его нет. action="javascript:void(0)" работает.

Примечание. Автозаполнение, кажется, вызывает событие onchange.

Примечание 2. Что касается того, как браузер знает, что это за поле, см. Этот вопрос: Как запустить автозаполнение в Google Chrome?

3 голосов
/ 03 января 2012

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

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

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