有没有办法告诉Firefox在页面刷新时不要记住我的输入字段状态?

26

Firefox有一个非常烦人的功能。当你按下F5键时,它会记住输入字段的状态。不仅是值,它甚至记住输入是否已被禁用。

示例:

<html>
    <head>
         <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    </head>
    <body>
        <input type="text" value="textbox" />
        <a href="#" onclick="javascript: $('input').attr('disabled', true); return false; " >Disable text box</a>
    </body>
</html>

以上代码中有一个锚点,点击后会禁用文本输入框。此后,Firefox将记住F5之后的状态,恢复到原始状态的唯一方法是在地址栏上按Enter键。

是否有元标记或其他方法可以使Firefox停止这样做?

编辑

实际上,不同的浏览器有不同的行为。 Firefox是最烦人的。 Firefox会记住输入值和是否已禁用。 IE8会记住该值,而Chrome则不会记住任何内容。


禁用时为什么不直接使用.val('')清除它呢? - Viruzzo
问题在于当我按F5时它会变为禁用状态。 - Andre Pena
在页面加载时,只需移除“disabled”属性,如下所示:$('input').removeAttr('disabled'); - Viruzzo
4
对于有兴趣的人,这里是关于此问题的漏洞报告(请不要在那里留下“请修复此问题”的评论):https://bugzilla.mozilla.org/show_bug.cgi?id=654072 - Nickolay
1
看起来在这个缺陷报告开启8年之后,它仍未被修复。 - user1629823
4个回答

31
你可以将元素或表单设置为 autocomplete="off" 以禁用状态保存,但这也会禁用输入自动完成功能。

1
Chrome也是一样的,如果你在带有autocomplete=off的输入字段中使用后退按钮,它们将会变成空白。 - Chris S
非常好,谢谢!看起来Mozilla和Google雇了一位微软的工程师来开发它。 - Michał Kutra

2

我认为所有的浏览器都具备这个功能。

但如果想将您的输入重置为原始值,请尝试以下方法。

$('document').ready(function(){//or whenever you want to fire back to the default value
    $('input#withanidplease').val($('input#withanidplease').prop('defaultValue'))
})

实际上,不同的浏览器有不同的行为。Firefox 是最烦人的。Firefox 会记住输入值以及它是否被禁用。IE8 会记住值,而 Chrome 不会记住任何东西。感谢您的回复,但我真的需要一个不涉及 JavaScript 的解决方案。 - Andre Pena
在常识上,是选择没有JavaScript还是没有JQuery?因为在你的示例中使用了一些JavaScript代码。 - Fredy31

-3

根据您使用的脚本语言,您可以尝试禁用缓存。


1
有没有人在浏览器中使用除了 JavaScript 以外的其他东西呢,我想知道...? - Ioannis Karadimas

-3

试试这个:

<a href="javascript:void(0)" onclick="javascript: $('input').attr('disabled', true); return false; " >Disable text box</a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接