Firefox记住电话号码作为用户名


8

我有一个注册页面,其中包含所有标准字段,例如电话号码,电子邮件等。

电话和密码是制表符相邻的,即在物理上不是相邻的,但是如果您制表,则以名字->姓氏->电子邮件->电话->密码为准。

出于某种原因,它会提示用户在注册时记住其用户名和密码(这很不错),但是会将电话号码保存为用户名。

是否有规则帮助它决定/阻止它提示人们记住如此有用的电话号码/密码组合?

提前致谢

编辑:

  • 表单元素上的名称为“电话”和“ txtpassword”。

  • 我希望它能记住电子邮件和密码。鉴于目前的情况,这是可以实现的吗?

  • 不幸的是,我无法重新排列表单字段。顺序在上面的标签中给出。


哈哈,这也发生在我身上
马克·亨德森

Answers:


4

使用autocomplete =“ off”禁用自动完成功能,Firefox(和其他支持此非标准属性的浏览器)将不保存这些值。

<input type=text" name="dontsave" autocomplete="off">

编辑:

您看到的可能是由于您使用的字段名称。自动完成功能会查找常用的用户名/登录字段名称,并且您的电话号码字段可能会导致Firefox认为它是主要的登录ID字段。

编辑2:

电子邮件字段位于“电话”字段之前还是之后?如果在此之后,是否可以将其放在“电话”字段之前?如果是这样,那有什么不同吗?


我不认为OP希望这种行为。另外,您不能autocomplete在字段级别使用,它必须在表格级别使用,即<form autocomplete="false"...
DisgruntledGoat 2010年

您可以在现场使用它。查看wachovia.com的登录表单作为一个很好的例子。
约翰·孔德

@disgrunt-我们一直在字段元素上使用它-特别是CC编号/有效期字段。
马克·亨德森

2

如果不对字段进行重新排序或修改,通常是不可能的。您的username字段必须password在Firefox中的字段之前。

我有同样的问题,但是姓氏而不是电话。经过数小时的尝试,此答案很明确。Firefox(至少在当前版本中)查找密码字段。然后,它将前面的字段用作用户名字段,并询问用户是否要保存这些凭据。

自动完成不是这里的(主要)问题。即使关闭了整个表单的自动完成功能,Firefox仍会询问您是否要保存凭据。


2

您可以执行以下操作:

<input type="text" name="username" autocomplete="username">
<input type="default" name="email" autocomplete="email">
<input type="password" name="password" autocomplete="new-password">

当前版本的Firefox将查找第一个密码字段。从那里寻找类型的第一个前面的字段textemail查找用户名字段。

因此,我们可以通过使用无效的字段类型(default不是有效的字段类型)来欺骗它。因此,现在您无需重新排序字段即可满足Firefox的要求。当浏览器不知道字段类型时,它只会显示一个普通的文本字段。

Safari使用了不同的机制,但我没有遇到任何问题。我认为它着眼于字段的名称。

自动完成属性给出关于每个字段用于浏览器的进一步指示。


1

我之前在Google Chrome中注意到类似的行为。输入字段的名称是什么?我知道,如果浏览器使用诸如name="signup[email]"将一个变量中的所有内容都传递给服务器端的代码(在PHP中非常有用),它们通常会在字段方面遇到问题。

您可以尝试使用这种简单格式:<input name="username" type="text">使用emailpassword作为这两个字段的名称。(注意:当我在无法更改字段名称之前遇到这种情况时,我还没有实际测试过。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.