2010-06-29 54 views
2

演示链接: http://elevation-inc.com/dev/test/ieform/通过HTML在IE中禁用自动完成/预填充?

在IE 6/7/8 - 如果你进入一个术语成一个简单的输入框,提交表单,然后点击后退按钮 - 输入字段保留先前提交的期限。如果您然后刷新页面,该值也会保留。

如何通过HTML来禁用此预先填充?我们不想在页面加载/ domready的输入框中输入任何值。

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

在此先感谢。

回答

2

嗯,我想这是浏览器的行为,你不能绕过HTML。您可以在JavaScript做不过:

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

,或者如果你不想等待图像加载(因为在window.onload将等待), 可以使用文档准备事件,描述here。 (它需要更多的调整,使其在所有浏览器工作)

+0

这似乎是最好的办法,当它加上onDomReady事件。但是,需要将焦点状态存储在var中,以确保用户输入的文本不会被上述脚本意外擦除。我记得遇到了一些问题,如果用户在脚本加载之前将焦点放在表单元素上,就无法准确检测焦点状态,这会使这种方法变得复杂。但这可能是可以解决的。更多评论请关注.. – jfroom 2010-06-30 01:09:45

+0

幸运的是,我们的应用程序中有一种替代方法,我们可以采取而不是清除该字段。相反,我们检查该字段是否具有值onDomReady,并根据是否为空来触发相关功能。只是希望有一种更简单的方法来通过HTML杀死IE的prepop'功能'。 – jfroom 2010-06-30 01:10:20

+0

那么没有理由区分。 onDomReady value =“”应该这样做。如果没有内容,则没有任何反应,如果有内容将被删除。 – galambalazs 2010-06-30 10:19:59

5

<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>