it-swarm.dev

火狐在重新加载时保留表单数据

我在Firefox中的功能存在很大问题,它保留了用户在重新加载时填写的数据 F5。如果我使用 Ctrl+F5 表格被清除,这很好。我的问题是并非所有用户都知道这是强制输入清理所必须做的。在HTML或响应标头中是否有一种方法可以告诉Firefox不保留表单中的数据?

55
Andreas

只需在输入中添加autocomplete="off"即可解决问题。

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

jQuery在所有输入和textareas上解决这个问题

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

您可以将属性添加到表单元素中,而不是遍历所有输入,如下所示:

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

但是domReady上面提到的方法对我不起作用......

14
Daniel G.

我认为更简单快捷的方法是

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

我尝试了上面的缩短解决方案,但它没有清除我页面上选择框的值。

我最后稍微修改了它,现在无论类型如何,页面上的所有输入类型都被清除:

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

所以为了使这个运行onload我只是把它放在ready()方法中:

$(document).ready(function () {
    var allInputs = $(":input");
    $(allInputs).attr('autocomplete', 'off');
});
5
Todd Darnell
/*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。

5
www139

如果您想保留浏览器的自动完成功能(请参阅其他有效答案),请尝试将名称属性添加到表单并为其提供随机值。它对我有用:

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

我发现对我来说唯一的解决办法是做

document.forms[0].reset();

在文档早期准备好之前,正如@Marek上面的评论中所建议的那样 - 不是很好但是对我有用(通过jQuery,JS或HTML的autocomplete属性方法最终没有为我修复)

0
jonnybradley