禁用 Edge 自动完成 HTML 表单中的“上次使用”

问题描述 投票:0回答:2

Microsoft Edge 引入了一项新功能“上次使用”,该功能现在是“自动完成”下拉列表中的首要命题。单击时,它不仅会像其他自动完成命题一样填充所选的特定输入字段,而且会使用上次在同一表单上使用的值填充表单的所有字段。 screen shot of Last Used feature 在我的网络应用程序中,我已经在大多数字段中预加载了数据,现在有些用户只想填写一个缺失的信息,会意外地用“上次使用”内存中不需要的日期覆盖所有预加载的数据。 我正在寻找一个 HTML 标签或 JS 解决方法来阻止“上次使用”表单预填充,但保留使用各个输入字段的自动完成功能的可能性。

我尝试在我想要保护的某些单独字段上使用 autocomplete='off' 或 autocomplete='new-password' 。自动完成将不再显示这些字段,但在未禁用自动完成的字段中完成时,它不会保护它们免受“上次使用”自动填充的修改。因此,我现在唯一的选择是完全禁用表单所有字段的自动完成功能。

这是一个演示:

<form>
    <label for="name">Name:</label>
    <input type="text" id="name" name="name"><br><br>

    <label for="surname">Surname:</label>
    <input type="text" id="surname" name="surname"><br><br>

    <label for="car-model">Car Model:</label>
    <input type="text" id="car-model" name="car-model"><br><br>

    <input type="submit" value="Submit">
    <button type="button" onclick="fillPerson1()">Person 1</button>
    <button type="button" onclick="fillPerson2()">Person 2</button>
</form>

<script>
  function fillPerson1() {
        document.getElementById("name").value = "Soze";
        document.getElementById("surname").value = "Kayser";
  document.getElementById("car-model").value = "";

    }

    function fillPerson2() {
        document.getElementById("name").value = "Bates";
        document.getElementById("surname").value = "Norman";
  document.getElementById("car-model").value = "";

    }
</script>

https://jsfiddle.net/gsy3x1ze/2/

在最新版本的 Edge 中打开它,填写一些数据(例如“Smith”、“Dick”、“Toyota”),然后单击“提交”。重新单击“运行”以刷新表单,然后单击“Person 1”按钮。这将使用名称和姓氏的新值预先填写表单,并清空汽车型号字段。现在,当您单击汽车型号字段时,系统会首先建议“上次使用”选项,其中丰田以粗体显示,史密斯和迪克以斜体显示。单击后,所有三个字段都将被填充。这不是我想要的,自动完成应该只填充汽车型号字段,而其他两个字段保持不变,就像下拉列表中第二个选项的情况一样。

html autocomplete microsoft-edge autofill
2个回答
0
投票

使用您的代码示例,我重现了由“上次使用”引起的问题。我注意到这只发生在预加载的数据上,而不会发生在手动输入数据上。

为了避免对预加载数据进行此类操作,恐怕现在唯一的解决方案是多走一英里并选择另一个无法填充所有框的选项:

由于这是 Microsoft Edge 中的一项新功能(但不幸的是没有相关设置来关闭它,也没有任何 HTML 属性来控制它),我建议向 Edge 开发团队发送反馈(只需在中按 Alt+Shift+I浏览器)。


0
投票

在边缘钱包设置中,有一个名为“保存并填写付款信息”的设置。关闭此功能将删除“上次使用”功能。 前往设置 -> 个人信息 -> 设置 -> 取消选中复选框。

© www.soinside.com 2019 - 2024. All rights reserved.