Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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

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

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

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

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

Ответ 5

/*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 = "";
     }
}

Вызов этой функции при загрузке.

Ответ 6

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

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

Ответ 7

Я нашел единственное решение для меня было сделать

document.forms[0].reset();

до того, как документ будет готов в начале страницы, как предложено в комментарии @Marek выше - не очень хорошо, но он работал для меня (метод атрибута автозаполнения через jQuery, JS или HTML в конце концов не помог мне)