【发布时间】: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