【问题标题】:Preventing Firefox from remembering the input value on refresh with a meta tag使用元标记防止 Firefox 在刷新时记住输入值
【发布时间】:2010-03-21 09:07:21
【问题描述】:

当我用 Firefox 刷新页面时,复选框、输入字段等的值会被保留。

有没有办法让 Firefox 不保留它们,使用没有 JavaScript 的元标记?

【问题讨论】:

标签: html firefox forms


【解决方案1】:

对于input 标签,您可以设置属性autocomplete

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

您也可以对 form 使用自动完成功能。

【讨论】:

  • 这是 HTML5 现在的一部分,所有主流浏览器都支持 &lt;input&gt;,除了 Opera 不使用 &lt;form&gt; 标签。
  • @AaronD.Marasco 关闭自动完成功能也可能会阻止 Firefox 在页面重新加载之间记住输入值,但它是一个比在重新加载之间记住输入值更有价值的功能。问题是,如何阻止 Firefox 在页面重新加载之间记住输入值,而不是如何禁用自动完成。
  • @Mr TA... 是的:我想答案是使用 jQuery 在重新加载时显式重置所有 INPUT 等的值...我目前在使用 FF 时遇到了一个非常奇怪的现象:使用每次重新加载一个 INPUT 的内容都会“碰撞”到下一个 INPUT。但是,这仅在我注入
【解决方案2】:

如果您想防止在重新加载后记住字段值,同时仍要使用自动完成功能:

首先在标记中定义自动完成关闭:

<input id="the-input" type="text" autocomplete="off" />

然后以编程方式重新启用自动完成功能:

document.getElementById('the-input').autocomplete = 'on';

这将在页面加载的正确时间禁用自动完成,然后重新启用它以便可以使用(但字段值应该为空)。

如果对您不起作用,请尝试将 js 代码包装在 setTimeoutrequestAnimationFrame 中。

【讨论】:

    【解决方案3】:
    // Internet Explorer fix - do this at the end of the page
    var oninit_async_reset = setInterval(function() { resetFormIEFix(); }, 500);
    function resetFormIEFix() {
        $('#inputid').val('');
        if (typeof oninit_async_reset != 'undefined')
            clearInterval(oninit_async_reset);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-13
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      • 2016-06-18
      • 2022-06-22
      相关资源
      最近更新 更多