我有一个使用预先输入功能的Angular 4应用程序,目前正在为Edge上的用户干扰。 Edge正在填充自动完成下拉列表,该下拉列表显示在typeahead下拉列表的顶部。通常情况下,这不会超过烦恼,除了以下情况:
用户需要选择我们称之为案例名称的内容。在这个阶段,他们可能会在应用程序的其他地方输入案例名称。随后,当他们点击此特定类型时,他们可能会在边缘自动填充下拉列表中看到他们正在寻找的案例名称。如果他们使用它,而不是Input的typeahead,相应的 Case ID 永远不会在组件中注册,并且此组件使用ID而不是名称执行保存。用户基本上会看到有效的案例名称,点击保存,然后弹出错误。
此外,Input当前使用typeahead select事件来响应输入更改,而不是Angular的双向数据绑定[(ngModel)]
。
我发现了几乎确切的问题in this GitHub issue,但他们引用autocomplete="off"
作为工作解决方案,但autocomplete="off"
和autocomplete="false"
似乎都没有对input
产生任何影响我的案例中有{1}}或form
个标签。
同样地,这个post有一个令人沮丧的回应,表明Edge已禁用autocomplete="off"
并且似乎没有提供任何替代方案。
我还使用假系列输入在帖子中找到了此response,但似乎这仅适用于登录凭证自动填充。
答案 0 :(得分:1)
自动填充功能通常使用字段标签和ID。你可以做的一件事(这是一个可怕的黑客)是使这些字段动态和生成(时间戳生成GUID或其他东西)这将破坏浏览器使用的自动完成功能,但它也会破坏您的表单的可访问性一定程度。如果这不是一个问题,它似乎是一个体面的解决方案。