jquery -关闭所有表单的“autocomplete”(即使是尚未加载的表单)

1bqhqjot  于 12个月前  发布在  jQuery
关注(0)|答案(5)|浏览(135)

所以,我得到了这个代码:

$(document).ready(function(){
    $('form').attr('autocomplete', 'off');
});

字符串
问题是,我的一些表单是通过ajax加载的弹出窗口,这不适用于它们,因为它们是以后“加载”的。
我知道有一个live()函数--但它只用于附加事件。有什么好的方法可以把它应用到所有的窗体上呢?
谢谢.

brqmpdu1

brqmpdu11#

您可以将活动事件绑定到焦点事件,然后更改其属性。

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

字符串
从jQuery 1.7开始,jQuery.live被弃用。这段代码现在看起来像:

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

pdkcd3nj

pdkcd3nj2#

现在不推荐使用live事件,你应该使用on事件。这将附加到DOM中的每个输入,无论它是否已经创建。然后它将为该输入添加autocomplete=“off”属性。

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

字符串

gijlo24d

gijlo24d3#

使用jquery可能还不够,因为某些浏览器(如Chrome)可能会在文档准备好之前加载“自动完成”保存的数据($(document).ready)
jquery是这样工作的

$('input, :input').attr('autocomplete', 'off');

字符串
但是手动添加autocomplete='off'到您的输入标记可能会更有效

ybzsozfc

ybzsozfc4#

这在Chrome中也适用。

$("#autocmpldisablechk").click(function () {
    if (!$(this).is(":checked")) { 
        // enable autocomplete
        $("#autocomplete").autocomplete({
            disabled: false
        });
    }
    else { 
        // disable autocomplete
        $("#autocomplete").autocomplete({
            disabled: true
        });
    }
});

字符串

jjhzyzn0

jjhzyzn05#

我通过jQuery设置了自动完成“off”,但不起作用,然后将“off”改为“nope”,这对我很有效:
jQuery:

$("form input[type=text]").attr("autocomplete", "nope");

字符串
超文本标记语言:

<input id="name" type="text" autocomplete="nope" />

相关问题