2011-02-01 2 views
4

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

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

Так что я ищу способ отключить эту функцию, не отключая автозаполнение. (Потому что это полезно на полях наших клиентов заполнить)

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

autocomplete='off'

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

ответ

0

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

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

-1

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

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

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

+0

Проблема не в автозавершении. но форма, запоминающая значения (среди прочих, выбираются флажки allready как перед обновлением страницы, даже если другая опция отмечена как «SELECTED») – pvgoddijn

1

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

1

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

0

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

inputElem.value = ''; 
0

Вот решение JQuery я соединял.

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

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

var noFiller = $('input[type="text"]'); 

noFiller.val(' '); 
var t=setTimeout(function(){ 
    noFiller.val(''); 
},60);//keep increasing this number until it works 
0

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

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

Смежные вопросы