jquery - 将"自动完成"转为关闭所有表单(即使尚未加载)

Mat*_*hew 17 forms jquery

所以,我有这个代码:

$(document).ready(function(){
    $('form').attr('autocomplete', 'off');
});
Run Code Online (Sandbox Code Playgroud)

它适用于所有已存在的表格.问题是,我的某些形式是通过ajax加载弹出窗口.这不适用于他们,因为他们以后会"加载".

我知道有一个live()函数 - 但这仅用于附加事件.将此应用于所有表单的好方法是什么?

谢谢.

Pet*_*dIt 41

您可以将实时事件绑定到焦点事件,然后更改该属性.

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

从jQuery 1.7开始,jQuery.live已被弃用.此代码现在看起来像:

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

  • @AndyBrudtkuhl我通常会添加评论,说明答案需要更新.一旦你有2000个代表点,你可以编辑答案,以便在它们过期时更新它们. (3认同)

And*_*uhl 5

现在不推荐使用直播活动,您应该使用on事件.这将附加到DOM中的每个输入,无论它是否已创建.然后它会将autocomplete ="off"属性添加到该输入.

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