【问题标题】:disable autocomplete/pre-populate in IE via HTML?通过 HTML 在 IE 中禁用自动完成/预填充?
【发布时间】:2010-06-29 20:56:26
【问题描述】:

演示链接: http://elevation-inc.com/dev/test/ieform/

在 IE 6/7/8 中 - 如果您在简单的输入字段中输入术语,请提交表单,然后点击返回按钮 - 输入字段会保留之前提交的术语。如果您随后刷新页面,该值也会保留。

如何通过 HTML 禁用此预填充?我们希望页面加载/domready 的输入框中没有值。

我们已经在表单和输入元素上尝试了 autocomplete='off',但预填充仍然存在。

提前致谢。

【问题讨论】:

    标签: html internet-explorer forms usability


    【解决方案1】:

    <input type="text" name="userid" autocomplete="off" /> 对我来说很好用(你的表单也是如此)。确保在测试之间重新加载页面(CTRL + F5 进行完全刷新)。

    【讨论】:

      【解决方案2】:

      这是 IE 的工作原理,但您可以使用 JavaScript 更改值

      <body onload="document.getElementById('q').value = '';">
      <form action="http://www.google.com/search" name="f" autocomplete="off">
          <input type="text" name="q" autocomplete="off" id="q"><input type="submit">
      </form>
      

      【讨论】:

        【解决方案3】:

        好吧,我猜这是您无法通过 html 绕过的浏览器行为。但是,您可以在 javascript 中执行此操作:

        <script>
        window.onload = function() { document.forms.f.q.value = ""; };
        </script>
        

        或者如果您不想等待图像加载(因为 window.onload 会等待), 您可以使用文档就绪事件,如here 所述。 (它需要更多调整才能在所有浏览器上运行)

        【讨论】:

        • 当它与 onDomReady 事件结合时,这似乎是最好的方法。但是,需要将焦点状态存储在 var 中,以确保用户输入的文本不会被上述脚本意外清除。我记得遇到过一些问题,如果用户在脚本加载之前将焦点放在表单元素上,则无法准确检测焦点状态,这会使这种方法复杂化。但这可能是可以解决的。更多 cmets 关注..
        • 幸运的是,对于我们的应用程序,我们可以采取另一种方法来代替清除字段。相反,我们检查该字段是否具有值 onDomReady 并根据它是否为空来触发相关功能。只是希望有一种更简单的方法可以通过 HTML 杀死 IE 预弹出“功能”。
        • 好吧,没有理由区分。 onDomReady value="" 应该可以。如果没有内容,则什么都不会发生,如果有内容,它将被删除。
        • 但它只运行一次。文档准备好后用户输入的任何内容都不会被擦除。
        • 感谢 galambalazs,但我认为有理由区分。用户可能在 dom 就绪事件触发之前 在字段中输入了一些内容,在这种情况下,上述脚本将清除他们有意输入的内容。这可能发生在大型内容页面上,尤其是在较旧的浏览器上。但是,我认为这个线程是这个问题主题的最佳路径,所以我将它标记为“答案”。感谢您的宝贵时间。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多