Microsoft Edge 引入了一项新功能“上次使用”,该功能现在是“自动完成”下拉列表中的首要命题。单击时,它不仅会像其他自动完成命题一样填充所选的特定输入字段,而且会使用上次在同一表单上使用的值填充表单的所有字段。 在我的网络应用程序中,我已经在大多数字段中预加载了数据,现在有些用户只想填写一个缺失的信息,会意外地用“上次使用”内存中不需要的日期覆盖所有预加载的数据。 我正在寻找一个 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”按钮。这将使用名称和姓氏的新值预先填写表单,并清空汽车型号字段。现在,当您单击汽车型号字段时,系统会首先建议“上次使用”选项,其中丰田以粗体显示,史密斯和迪克以斜体显示。单击后,所有三个字段都将被填充。这不是我想要的,自动完成应该只填充汽车型号字段,而其他两个字段保持不变,就像下拉列表中第二个选项的情况一样。
在边缘钱包设置中,有一个名为“保存并填写付款信息”的设置。关闭此功能将删除“上次使用”功能。 前往设置 -> 个人信息 -> 设置 -> 取消选中复选框。