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

1bqhqjot  于 2024-01-07  发布在  jQuery
关注(0)|答案(5)|浏览(199)

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

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

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

brqmpdu1

brqmpdu11#

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

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

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

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

展开查看全部
pdkcd3nj

pdkcd3nj2#

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

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

字符串

gijlo24d

gijlo24d3#

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

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

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

ybzsozfc

ybzsozfc4#

这在Chrome中也适用。

  1. $("#autocmpldisablechk").click(function () {
  2. if (!$(this).is(":checked")) {
  3. // enable autocomplete
  4. $("#autocomplete").autocomplete({
  5. disabled: false
  6. });
  7. }
  8. else {
  9. // disable autocomplete
  10. $("#autocomplete").autocomplete({
  11. disabled: true
  12. });
  13. }
  14. });

字符串

展开查看全部
jjhzyzn0

jjhzyzn05#

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

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

字符串
超文本标记语言:

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

相关问题