【问题标题】:Turn off form fields autocomplete on browser back button for Internet Explorer关闭 Internet Explorer 浏览器后退按钮上的表单字段自动完成功能
【发布时间】:2011-08-02 22:54:13
【问题描述】:

有一些问题解释了如何关闭表单字段的自动完成功能,但是我在这里有一个具体问题:

我已将autocomplete="off" 设置为<form> 和所有表单字段。当用户使用浏览器后退按钮从表单目标页面返回到原始页面(包含表单)时,我想防止浏览器预填充字段。表单字段使用了一些 jQuery UI 小部件,这些小部件不适用于预填充值。用户在提交表单之前必须与表单进行交互。

这在 Firefox、Chrome、Safari 中按预期工作。但是它在 Internet Explorer 中不起作用(我已经测试了版本 8 和 9)。通过浏览器的后退按钮返回页面时,IE 仍然会填写字段。

这是一个静态 HTML 页面,因此我无法执行一些后端操作,例如设置随机表单字段名称/ID。

我能做什么?

【问题讨论】:

  • 我不确定这是否可行。也许尝试清空文档准备好的每个输入字段(例如$(":input").val("");
  • 嗯,这不是最佳解决方案。我忘了提到表单字段包含一些初始的描述性值,例如“您的名字”,当然应该保留这些值。
  • @Sven 输入元素有一个defaultValue 属性,应该包含初始值。您可以尝试将它们设置为那个。
  • @Sven - 更好的是,查看输入字段的 placeholder 属性。它是为字段内的那种信息文本明确设计的。这是一项 HTML5 功能,因此较旧的浏览器可能不支持它,但如果浏览器不支持,则有 Javascript/JQuery 脚本将使用占位符属性。
  • 我尝试使用 placeholder 属性并评估了一些 jQuery 插件,这些插件将此功能带到了非 HTML5 浏览器。然而,这些插件都没有完美地工作。例如,执行val("") 会在非 HTML5 浏览器中删除占位符文本,而在“标准”浏览器中保留占位符。我想这与插件使用value 属性作为解决方法有关。我现在使用placeholder 的组合并将所有输入字段的值设置为页面加载时的占位符值。

标签: html internet-explorer forms autocomplete


【解决方案1】:
<script type="text/javascript">
    window.onbeforeunload = function () {
        var f = document.getElementById('MyTextBox');
        f.textContent = ""; // or default values
    }
</script> 

你有没有试过这样在离开页面时卸载数据,这样回来时它就不存在了?

很遗憾,我遇到了同样的问题,我无法在 ASP.NET 中使用此解决方案。

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多