如何禁用所有主流浏览器的自动完成功能

时间:2015-01-05 11:11:19

标签: html forms browser autocomplete

如何在主要浏览器中针对特定输入和/或完整表单禁用自动填充功能。

我找到了这个解决方案:

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

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

编辑:

我的firefox问题已经解决。这留下了以下内容:我可以在表单上禁用自动填充功能,还是必须为每个输入提供自动完成功能=&#34; off&#34;

3 个答案:

答案 0 :(得分:6)

Autocomplete应使用以下<input>类型:text,search,url,tel,email,password,datepickers,range和color。

但是,唉,您可以尝试将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');
    });
});

答案 1 :(得分:3)

您可以尝试使用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?

答案 2 :(得分:-1)

IE:自动填充

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

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