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