奇数自动完成+密码记住行为

时间:2009-01-19 18:56:24

标签: ruby-on-rails firefox autocomplete google-chrome

我很难弄清楚Firefox和Chrome如何确定密码的字段以及如何在其他表单上自动填充密码。

对于我的登录表单,我有这个:

<p>
    <label for="login_email">Email:</label><br />
    <input id="login_email" name="login[email]" size="30" type="text">
</p>

<p>
    <label for="login_password">Password:</label><br />
    <input id="login_password" name="login[password]" size="30" type="password">
    <input id="login_password_hash" name="login[password_hash]" type="hidden">
</p>

<p>
    <input id="login_submit" value="LOGIN" type="submit">
</p>

login_password_hash字段用于在使用Javascript发送之前对客户端密码进行哈希处理,禁用Javascript不会改变结果。

为了创建一个新用户,我有这样的形式:

<p>
    <label for="user_email">Email:</label>
    <input id="user_email" name="user[email]" size="30" type="text">
</p>
<p>
    <label for="user_first_name">First Name:</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text">

</p>
<p>
    <label for="user_last_name">Last Name:</label>
    <input id="user_last_name" name="user[last_name]" size="30" type="text">
</p>
<p>
    <label for="user_password">Password:</label>
    <input id="user_password" name="user[password]" size="30" type="password">
    <input id="user_password_hash" name="user[password_hash]" type="hidden">
</p>

<p><input id="user_submit" value="Create User" type="submit"></p>

现在,在从登录表单保存密码并访问新用户表单后,保存的电子邮件将放在密码字段之前的最后一个字段中,并将密码放在密码字段中。

这种情况发生在Firefox和Chrome上,但不会发生在Internet Explorer中。有关Firefox和Chrome为何如此表现的想法?这两种形式没有任何共同之处,名称和ID都不同。

3 个答案:

答案 0 :(得分:2)

如果要在输入上禁用自动填充功能,请尝试使用自动填充属性,例如:

<input type="text" name="email" autocomplete="off" />

但不保证在所有浏览器中都可以使用。

答案 1 :(得分:0)

所有浏览器都会选择最明显的字段名称:

  • firstname
  • 姓氏
  • 用户名
  • 密码

那些明显的替代品(空格的下划线,以及“用户”和“通过”等一些简写)。这将取决于浏览器本身以及支持哪些疯狂替代品的版本。

答案 2 :(得分:0)

似乎更改名称和ID属性对Firefox和Chrome中的密码管理器没有任何影响,他们只看到密码字段及其上方的字段,这对他们来说已经足够了。

所以我只是在创建一个新用户的密码字段作为文本字段。