奇怪的输入文本和输入密码擦除默认输入密码

问题描述:

我有一个简单的文本和密码输入,默认的用户名和密码填写。如果我将焦点放在文字输入上,然后取消焦点,则由于某种原因它会删除我的密码输入。这似乎只发生在Firefox上。我认为这将是我周围的代码,但我想没有运气的一切移动到一个空白页,并剥夺一切梗概:奇怪的输入文本和输入密码擦除默认输入密码

<form> 
<input type="text" value="username" /> 
<input type="password" value="password" /> 
</form> 

有几件事情,我注意到了也不要紧什么价值我更改用户名和密码,我仍然遇到这个问题。如果我删除开始窗体标记,则此问题会消失。如果我交换它并且先输入密码,然后输入用户名,那么它将起作用......另一个奇怪的是,如果我从我的操作系统路径运行此文件,问题也会消失。任何人有任何想法可能是什么问题?

+0

在你正在执行的代码中是否有任何JavaScript内联或链接? – Bostone 2009-11-01 06:17:54

+0

在我的原始页面上有,但我也在一个完全空白的页面上测试它,有和没有文档类型,但问题仍然存在。 – Roger 2009-11-01 15:42:00

听起来像Firefox的表单字段自动完成正在让你的方式。您可以通过将autocomplete="off"添加到<input>字段或将<form>元素添加到所有字段来禁用它。

+0

嗯,这个“有点”起作用。在使用autocomplete =“off”后,会发生什么,当我将注意力放在用户名上时,现在密码不会被擦除。但是,一旦我在用户名中输入任何内容并失去焦点,它就会再次删除密码。这是令人费解的,因为我尝试了其他一些网站,但这并没有发生。 – Roger 2009-11-01 15:44:34

它似乎是Firefox(至少3.5.1)密码管理器的行为。在模糊时,它会查找DOM树中的下一个输入字段,并且如果有密码字段,则管理器会将当前值替换为之前存储的值或空字符串(如果未找到匹配项)。

要确保它可以尝试输入存储的此页/域用户名输入并删除焦点。 FF将替换存储的密码。

作为解决方法,您可以在文本和传递字段之间插入<input id="dummy" type="text" style="display:none;" />。这将打破FF依赖的通用标记模式。