Firefox сохраняет данные формы при перезагрузке

У меня большая проблема с функциональностью в Firefox, которая хранит данные, которые пользователь заполнил при перезагрузке Ф5. Если я использую Ctrl+Ф5 формы очищаются, и это здорово. Моя проблема в том, что не все мои пользователи знают, что это то, что они должны сделать, чтобы заставить очистку ввода. Есть ли способ в заголовках html или ответов сказать Firefox, чтобы не хранить данные в формах?

6 ответов


просто добавить autocomplete="off" для всех вы вводите, и вы решите проблему.

<input type="text" autocomplete="off">

jQuery, чтобы решить эту проблему на всех входах и текстовых областях

$('input,textarea').attr('autocomplete', 'off');

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

<form method="post" autocomplete="off">...</form>

однако вышеупомянутые методы на domReady не работали для меня...


Я думаю, что проще и быстрее способ сделать это

$('input,textarea').attr('autocomplete', 'off');

я попробовал укороченное решение выше, но оно не очистило значение полей выбора на моей странице.

Я немного изменил его, и теперь все типы ввода на странице очищаются независимо от типа:

var allInputs = $(":input");
$(allInputs).attr('autocomplete', 'off');

поэтому, чтобы сделать этот запуск onload, я просто помещаю его в метод ready ():

$(document).ready(function () {
    var allInputs = $(":input");
    $(allInputs).attr('autocomplete', 'off');
});

/*reset form elements (firefox saves it)*/

function resetElements()
{
     var inputs = document.querySelectorAll('input[type=text]');
     //you get the idea.....you can retrieve all inputs by tag name input
     for(var i = 0; i < inputs.length; i++) {
         document.getElementsByTagName('input')[i].value = "";
     }
     var textareas = document.getElementsByTagName('textarea');
     for(var i = 0; i < textareas.length; i++) {
         document.getElementsByTagName('textarea')[i].value = "";
     }
}

вызовите эту функцию onload.


Если вы хотите сохранить функцию автозаполнения браузера (см. другие допустимые ответы), попробуйте добавить атрибут name в форму и дать ему случайное значение. Это сработало для меня:

<form id="my-form" name="<random-hash>">
...
</form>