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

所以,我有这个代码:

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

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

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

谢谢。

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

 $(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' ); }); }); 

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

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

使用jquery可能还不够,因为像chrome这样的浏览器可以在文档准备好之前加载’autocomplete’保存的数据($(document).ready)

jquery就是这样的

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

但手动添加autocomplete='off'到您的输入标签可能会更有效