如何为所有主要浏览器禁用自动完成

How to disable autocomplete for all major browsers

如何在主要浏览器中禁用特定输入的自动完成and/or完整表单。

我找到了这个解决方案:

<input type="text" name="foo" autocomplete="off" />

然而,这似乎并不适用于所有浏览器。例如,我在 firefox 中遇到过问题。

编辑:

我的 firefox 问题已经解决。留下以下内容:我可以禁用表单上的自动完成功能还是必须为每个输入提供自动完成功能="off"

您可以尝试使用 javascript 在页面加载时手动清除文本字段,例如:

window.onload = function() {
    elements = document.getElementsByTagName("input");
    for (var i=0; i<elements.length; ++i) {
        elements[i].value = "";
    }
};

如果在自动填充之前执行,这可能不起作用。另一种选择是在每次呈现页面时为您的输入随机生成部分 name 属性(并在服务器处理提交时将其删除),然后浏览器将不会尝试自动完成。

另见 Is autocomplete="off" compatible with all modern browsers?

Autocomplete 应使用以下 <input> 类型:文本、搜索、url、电话、电子邮件、密码、日期选择器、范围和颜色。

但是,唉,您可以尝试将 autocomplete='off' 添加到您的 <form> 标签而不是 <input> 标签,除非有什么阻止您这样做。

如果不行,您也可以使用 JavaScript:

if (document.getElementsByTagName) {
    var inputElements = document.getElementsByTagName(“input”);
    for (i=0; inputElements[i]; i++) {
        if (inputElements[i].className && (inputElements[i].className.indexOf(“disableAutoComplete”) != -1)) {
            inputElements[i].setAttribute(“autocomplete”,”off”);
        }
    }
}

或 jQuery:

$(document).ready(function(){
    $(':input').live('focus',function(){
        $(this).attr('autocomplete', 'off');
    });
});

IE:自动完成

Firefox,Chrome,Opera: 禁用自动完成

<input type="text" autocomplete="off" disableautocomplete id="number"/>

我找到了这个。它隐藏在 chrome、edge 和 opera

<form autocomplete="off">
<input role="presentation" />
</form>