我们有一个单页应用程序,使用AngularJS构建。像许多应用程序一样,我们有一个登录表单,其中包含一个input[type=text]
(电子邮件)和一个input[type=password]
(密码)。好的。Firefox保存数据(如果用户确认),下次可以自动完成表单。
我们也有一个用于编辑或创建用户的表单。当然,也有text
和password
类型的输入字段。Firefox在任何情况下都会为任何用户自动完成这些字段。
我们的用户编辑表单:
<!--span>made by selectize directive: no id, no name<span-->
<input type="text" tabindex="0"></input>
<input
id="whatever"
autocomplete="off"
class="form-control"
name="hi"
ng-minlength="settings.loginSettings.passwordMinLength"
ng-model-options="{debounce: {'default': 500, 'blur': 0}}"
ng-model="userData.password"
ng-required="!userData.id"
placeholder="{{ '_settings.password' | translate }}"
type="password" />
字符串
我们的表单有一个不同于登录表单的id
,它有autocomplete="off"
属性(which is turned off in FF >= 30,尽管它显然是HTML5标准的),密码字段有一个不同于登录表单的name
和id
属性。其他建议,如添加一个隐藏的(style="display: none"
)文本输入字段不起作用。
我在用户编辑控制器中创建了一个非常脏的JS hack,它清空了脏字段和相关的模型字段,但用户确实看到页面上发生了奇怪的事情。
Mostdiscussions这个问题在这里是相当老,但另一方面吨的应用程序有一个登录表单和用户编辑表单.我猜我们错过了一些简单的东西在这里?
- 谢谢你的建议 *
3条答案
按热度按时间ou6hu8tu1#
我已经通过在真实的字段上添加假字段修复了相同的问题。
字符串
pkbketx92#
这是一个旧线程,但另一个解决方案是在输入字段中设置
autocomplete='new-password'
。字符串
请参阅MDM Web文档
lf5gs5x23#
在现代浏览器中,正确的方法是设置
autocomplete="new-password"
更多细节可以在here中找到。
即
字符串