我在Firefox上有一个奇怪的错误,而不是Chrome(两者都已更新)。
在我网站的登录页面上,这些字段是:
<div class="input text required">
<label for="ArchUtilisateurUsername">Identifiant :</label>
<input name="data[ArchUtilisateur][username]" id="ArchUtilisateurUsername" type="text">
</div>
<div class="input password">
<label for="ArchUtilisateurPassword">Mot de passe :</label>
<input name="data[ArchUtilisateur][password]" id="ArchUtilisateurPassword" type="password">
</div>
然后在另一页上,我有一个表单来创建与用户帐户不同的“读者”帐户。它使用读取的ID和密码作为登录信息,但是以这种形式,两者并不相邻。 所以我有这个:
<div class="group-content">
<div id="DivFieldLecteurFormCompteActif" class="input checkbox ">
<input name="data[LecteurForm][compte_actif]" value="" type="hidden">
<input name="data[LecteurForm][compte_actif]" id="FieldLecteurFormCompteActif" value="1" type="checkbox">
<label for="FieldLecteurFormCompteActif">Compte actif</label>
</div>
<div id="DivFieldLecteurFormPassword" class="input password ">
<label for="FieldLecteurFormPassword">Mot de passe</label>
<input name="data[LecteurForm][password]" id="FieldLecteurFormPassword" autocomplete="off" type="password">
</div>
<div id="DivFieldLecteurFormPasswordConfirm" class="input password ">
<label for="FieldLecteurFormPasswordConfirm">Confirmation</label>
<input name="data[LecteurForm][password_confirm]" id="FieldLecteurFormPasswordConfirm" autocomplete="off" type="password">
</div>
</div>
一个奇怪的问题是,如果用户在登录网站时验证了Firefox的“保存我的登录数据”弹出窗口,并且在打开“阅读器”表单时得到验证,
从密码字段开始:如果上一个是复选框,请选择单选,将其忽略,然后继续。如果我从源中删除带有用户名的输入字段,则在重新加载页面时,它是获取用户名的下一个先前输入字段。
所有内容似乎都链接到密码字段:
最后一点似乎可以确认(至少以我为例),当Firefox已保存网站的用户名/密码时,它会尝试将信息填充到他找到的第一个密码类型字段中,然后填充第一个前一个文本类型字段。
如您在代码中所见,即使我在字段上放置了autocomplete="off"
,它也可以做到这一点。
因此,Firefox使用保存的登录信息自动填写错误的表单,该表单甚至具有不同的字段名称(和不同的字段ID)。是已知行为吗?有没有一种方法可以防止这种情况发生(因为自动填充功能似乎无法完成任务)?
为了防止another answer,我多次从Firefox的密码管理器中删除了所有数据,这与旧的存储字段名称无关。
答案 0 :(得分:0)
最后,我在这里找到了有效的答案:https://stackoverflow.com/a/29852908/1459054
虽然在Firefox中搜索此“错误” ...抱歉,“功能”已存在10多年了,但我看到有关此标记为“ WONTFIX”的多个错误报告,因为这是预期的行为(“密码管理器不应t依靠字段名称”),使登录信息可以在任何适合的位置弹出,并且因为“它与许多用户无关,因此修复不重要”。