在我的网站上,登录页面上有两个字段:一个用于电子邮件,一个用于密码。如果我已注册,退出并返回登录,Chrome会将用户名自动填入电子邮件文本框而不是电子邮件地址。
<div class="inputs">
<%= devise_error_messages! %>
<label id="maincontent" class="control-label sr-hidden" for="email">Email Address</label>
<input id="email-input" name="email" type="email" required='true' autocompletetype='email' autofocus='true' placeholder='Enter your email address...'/>
<label class="control-label sr-hidden" for="password">Password</label>
<%= f.password_field :password, :required => false, :placeholder => "Enter your password...", :id => "password" %>
</div>
此外,如果我完全删除了密码字段,则在电子邮件字段中根本不会发生自动填充,并且将其留空。如果单击该字段,则会弹出下拉自动完成菜单。
EDIT [解决]: 我在注册页面上切换了姓名和电子邮件字段
chrome会将“默认登录凭据”状态分配给注册页面上密码正上方的任何字段
它会在登录页面上的密码字段上方的字段中自动回复该凭据以进行自动填充
它需要一个去设置&gt;密码和表单&gt;管理密码并删除错误的默认值,然后再次登录/更新已更正的表格
答案 0 :(得分:4)
在注册页面上切换姓名和电子邮件字段,修复它。
chrome会将“默认登录凭据”状态分配给注册页面上密码正上方的任何字段
它会在登录页面上的密码字段上方的字段中自动回复该凭据以进行自动填充
它需要一个去设置&gt;密码和表单&gt;管理密码并删除错误的默认值,然后再次登录/更新已更正的表格
答案 1 :(得分:2)
是的,this answer还确认了在type="password"
输入之前直接自动填充电子邮件或登录文本输入的行为。你也可以在密码输入之前做这样的事情来阻止它:
<input name="block-autocomplete" style="opacity: 0.0; width: 1px; height: 1px; position: absolute;" tabindex="-1">
答案 2 :(得分:0)
您可以通过向输入标签添加自动填充属性来控制自动填充的内容,如下所述: https://developers.google.com/web/fundamentals/design-and-ux/input/forms/#use_metadata_to_enable_auto-complete
例如
<input type="text" autocomplete="name">
将告诉Chrome自动输入名称。在上面的链接中查看整个列表