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

时间:2011-09-11 09:10:58

标签: forms firefox caching

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

9 个答案:

答案 0 :(得分:76)

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

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

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

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

答案 1 :(得分:14)

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

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

然而,domReady上面提到的方法对我不起作用......

答案 2 :(得分:6)

我认为更容易,更快捷的方法是

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

答案 3 :(得分:5)

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

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

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

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

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

答案 4 :(得分: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 = "";
     }
}

调用此函数onload。

答案 5 :(得分:2)

In case you want to keep the autocomplete feature of the browser (see other valid answers), try adding the name attribute to the form and give it a random value. It has worked for me:

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

答案 6 :(得分:1)

只是为了支持@jonnybradley 的解决方案(无法对他的回答发表评论,因为我还没有足够的代表):

这对我来说也很完美:

document.getElementById('theFormId').reset();

在 HTML 代码之后调用。

答案 7 :(得分:0)

我发现唯一适合我的解决方法是

ffmpeg -ss 00:30 -i PICT0050.AVI -vframes 1 -q:v 2 output1.jpg

magick compare -metric PSNR output1.jpg output2.jpg diff.jpg
9.2191

magick compare -metric PSNR output1.jpg output3.jpg diff.jpg
7.70127

在页面早期准备好文档之前,如上述@Marek的评论所建议-不好,但对我有用(通过jQuery,JS或HTML的autocomplete属性方法最终并没有为我解决)

答案 8 :(得分:0)

我的一位同事建议我们应使用随机字符串作为表单名称。如果您不使用表单的name属性,则效果很好。

这是sf1表单生成器中的一个示例:

public function renderFormTag($url, array $attributes = [])
{
    ..
    $attributes['name'] = isset($attributes['name']) ? $attributes['name'] : bin2hex(random_bytes(16));
    ..
}