3

我有一个用于登录表单的基本文本输入,我希望浏览器记住用户输入的电子邮件地址,但它不起作用。我认为我不需要添加一个完整的自动完成系统来让它工作,因为这是浏览器应该做的事情。在我访问过的网站上,我没有看到任何特别之处。

如果我搜索这个问题,所有的答案都是关于禁用自动完成。

这是我的登录表单:

<form id="login-form">
  <fieldset>
    <input id="email" type="email" placeholder="Your email" required="" >
    <input id="password" type="password" placeholder="Pick a good password" required="" minlength="6">
    <button class="login">Register</button>
  </fieldset>
</form>
4

2 回答 2

5

所以这里的问题似乎是我的输入没有“名称”属性。似乎我还需要为名称指定特定值。“email”有效,“login”有效,但“user_email”和“foo”无效。

令人惊讶的是,一旦我在输入中添加了 'name="email"',它就开始工作了,所以 Chrome 似乎正在保存这些值,但没有显示它们。

这个简单的输入就是 Chrome 进行电子邮件自动完成所需的全部内容:

<input name="email">
于 2013-02-01T18:45:53.170 回答
0

我不相信您可以强制用户的浏览器自动完成。

HTML5 有一个自动完成的表单属性

这是自动完成属性的 W3C 规范

但是,即使您将此属性设置为“on”,HTML 表单的自动完成也将取决于客户端的浏览器设置和配置。

正如您所说,尽管您可以禁用autocomplete,但如果用户将浏览器配置为不记住表单历史记录,则无法强制用户的浏览器自动完成表单。

例如,这里是如何禁用 Firefox 的自动完成功能:https ://developer.mozilla.org/en-US/docs/Mozilla/How_to_Turn_Off_Form_Autocompletion

于 2013-02-01T18:51:38.767 回答