自动完成“关闭”完全被忽略

时间:2015-04-03 12:59:37

标签: html forms autocomplete

好的,所以我知道这个自动完成=&#34; off&#34; tag应该适用于除密码字段之外的所有输入,我已经搜索了我的具体问题的答案,但看起来我是唯一一个遇到此问题的人。我知道我可以将它添加到表单元素或单个input-element。我的doctype设置为:<!DOCTYPE html>

我有一个包含2个问题的表单(本例简化):姓名和电话。出于测试目的,我添加了autocomplete =&#34; off&#34;到两个字段和表单元素。

这是我的表格:

<form id="myform" autocomplete="off">
    <input autocomplete="off" type="text" name="name" />
    <input autocomplete="off" type="text" name="phone" />
</form>

表单完全忽略了autocomplete =&#34; off&#34;并提出我的姓名和电话号码。

有人有任何想法吗?

Screen-shot

8 个答案:

答案 0 :(得分:3)

嘿,解决方案实际上非常简单:

autocomplete="__away"

我们做的是告诉所有浏览器完全忽略该字段,因为__away是空值-不存在。

答案 1 :(得分:2)

Chrome很遗憾地决定忽略autocomplete="off",这使开发人员难以为普通用户带来更轻松的事情。

  

...我们开始忽略Chrome自动填充数据的autocomplete = off

来源:https://bugs.chromium.org/p/chromium/issues/detail?id=468153(2015)

有解决方案吗?

不是...... 该评论仍在继续:

  

如果您确实要禁用自动填充功能,我们此时的建议是利用自动填充属性为您的字段提供有效的语义含义。如果我们遇到我们无法识别的自动填充属性,我们就不会尝试填写它。

但这似乎不再适用(从Chrome 53开始)。从这里的讨论 - Chrome Browser Ignoring AutoComplete=Off - 以及我自己的测试,似乎不再有办法在不使用某种黑客的情况下关闭自动填充。

答案 2 :(得分:2)

尝试在密码元素中设置autocomplete =“new-password”。这仅适用于chrome

答案 3 :(得分:1)

许多现代浏览器不支持autocomplete =“off”。

这是Firefox(自版本38以来),Google Chrome(自34版)和Internet Explorer(自版本11以来)以来的行为。

答案 4 :(得分:0)

试试这个:

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

或者这个:

$(document).ready(function(){ 
    $("input").attr("autocomplete", "off");
}); 

另一方面,您可能会看一下这个Chrome Browser Ignoring AutoComplete=Off。希望这会有所帮助..

答案 5 :(得分:0)

尝试一下:

<form id="myform" autocomplete="dummy-no-auto-complete-fix">
    <input autocomplete="dummy-no-auto-complete-fix" type="text" name="name" />
    <input autocomplete="dummy-no-auto-complete-fix" type="text" name="phone" />
</form>

答案 6 :(得分:0)

“关闭”根本不起作用。我的浏览器保存的表单知道“关闭”作为输入标识符而不是设置值。因此,您需要使用随机字符串来使浏览器成为新输入,这是您第一次看到的输入

$(document).ready(function(){
    $( document ).on( 'focus', ':input', function(){
        let text = "";
        let possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

        for (let i = 0; i < 20; i++)
            text += possible.charAt(Math.floor(Math.random() * possible.length));
        $( this ).attr( 'autocomplete', text );
    });
});

答案 7 :(得分:0)

我只是用

对其进行了修复
sudo ntfsfix /dev/vda
sudo ntfsfix /dev/vdb

因此,您不仅需要<form autocomplete="off"> your inputs </form> 中的autocomplete="off"中需要<form>