autocomplete = off不在chrome中工作

时间:2015-07-24 14:16:01

标签: html google-chrome

我们正在开发一个网络应用程序,其中有一个付款页面。

我们有两个文本框,一个用于信用卡号,第二个用于验证码,输入=“密码”。

现在问题是当google-chrome加载页面时,它发现type =“Password”它加载在信用卡文本框中保存电子邮件ID并在验证码中保存密码。

现在尝试解决这个问题,我尝试了类似下面的内容。

<form autocomplete="off">

<asp:textbox autocomplete="off">

以上尝试对我不起作用。我正在谷歌搜索它,但幸运的是,这对我不起作用。

10 个答案:

答案 0 :(得分:15)

Chrome现在似乎忽略了自动完成=&#34;关闭&#34;除非它在v34之后的<form autocomplete="off">标签上。

你不能通过创建一个隐藏的输入作弊。自动完成功能将获得第一个输入文本以填充数据。

方法1:

<form id="" method="post" action="" autocomplete="off">
    <input type="text" style="display:none" />
    <input type="password" style="display:none">
    <asp:textbox autocomplete="off">
</form>

所以把它放在你的文本框之前。

<input type="text" style="display:none" />

方法2:

更改

autocomplete="off" 

autocomplete="false" 

方法3: 浏览器通过只读模式自动填充。

 <input type="password" readonly onfocus="this.removeAttribute('readonly');"/>

方法4:

用于用户名密码组合。 Chrome启发式查找模式。

<input type="text" onfocus="this.type='password'">

方法5: jQuery的

if ($.browser.webkit) {
    $('input[name="password"]').attr('autocomplete', 'off');
    $('input[name="email"]').attr('autocomplete', 'off');
}

答案 1 :(得分:1)

如果您想将白色作为输入背景颜色

,这是有效的
<input type="password" class="form-control" id="password" name="password" placeholder="Password" readonly onfocus="this.removeAttribute('readonly');" style="background-color: white;">

答案 2 :(得分:1)

这是唯一适用于自动完成和 Chrome 自动填充的解决方案: 它也可以在调用 new this.props.google.maps.places.Autocomplete

后工作
  1. 在表单标签上添加 autocomplete="off"。

  2. 直接在表单内的输入上设置 autocomplete="none" 并在焦点上再次设置属性。

     <form autocomplete="off">
         <input type="text" autocomplete="none" onfocus="this.setAttribute('autocomplete', 'none');"/>
     </form>
    

答案 3 :(得分:0)

这很好用,也兼容MDL(Material Design Light):

    // Fix chrome's ignore on autocomplete=off
    $('input[autocomplete=off]').each(function(){
        var copy = $(this).clone();
        copy.val('');
        copy.removeAttr('autocomplete');
        copy.insertAfter($(this));
        $(this).hide().removeAttr('required id class');
    });

答案 4 :(得分:0)

automcomplete="off" or automcomplete="false" 

或在输入字段

中定义自动完成
 $('input[name="password"]').attr('autocomplete', 'off');//Disable cache

答案 5 :(得分:0)

使用此解决方案

<input type="password" class="form-control auto-complete-off" id="password" name="password" autocomplete="new-password">

答案 6 :(得分:0)

Chrome在某些输入字段的表单级别不支持autocomplete =“ off”。 有两种解决方案:

  • 在您的表单中,如果只有两个或三个字段忽略autocomplete =“ off”,则将字段名称本身用作自动完成值。即autocomplete =

    v_tmp = p_df_in_fromfunc1.iloc[i,"Col1"]

  • 与其在每个页面上手动定义字段名称,不如在页面加载时或加载后为所有文本输入输入使用脚本。

    <form:input type="text" id="name" path="name" autocomplete="name"/>

答案 7 :(得分:0)

非常简单,您可以按照此操作

let elements = document.querySelectorAll('[autocomplete="off"]');
elements.forEach(element => {
    element.setAttribute("readonly", "readonly");
    element.style.backgroundColor = "inherit";
    setTimeout(() => {
        element.removeAttribute("readonly");
    }, 500);
})

答案 8 :(得分:0)

在需要文本类型的地方不能使用密码类型吗?不管上面介绍的方法,如果名称相同,Chrome 会无条件地处理自动完成。 所以,我用了一个方法,像这样随机更改名称。

$(document).on('focus click tap'
    , 'input[autocomplete][autocomplete!=""]:not([data-oname][data-oname!=""])'
    , function() {
    var oname = $(this).attr('name');
    $(this).attr({"data-oname":oname,"name":"random string"});
    // A random string should be set for name above.
}).on('blur', 'input[data-oname][data-oname!=""]', function() {
    var oname = $(this).attr('data-oname');
    $(this).attr({"name":oname}).removeAttr('data-oname');
});

答案 9 :(得分:0)

这有效:

        $(document).ready(function () {
        
            setTimeout(() => {
                $('input').attr("readonly", 'readonly');
                $('input').attr("onfocus", "this.removeAttribute('readonly')");
            }, 100);
            
        });