jquery - отключение автозаполнения для всех форм (даже не загруженных) - PullRequest
16 голосов
/ 19 мая 2010

Итак, у меня есть этот код:

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

Отлично работает для всех существующих форм. Проблема в том, что некоторые мои формы находятся во всплывающих окнах, загруженных через AJAX. Это не относится к ним, так как они «загружаются» позже.

Я знаю, что есть функция live (), но это только для прикрепления событий. Какой хороший способ применить это к всем формам?

Спасибо.

Ответы [ 4 ]

40 голосов
/ 19 мая 2010

Вы можете привязать живое событие к событию фокуса, а затем изменить для него атрибут.

$(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' );
    });
});
5 голосов
/ 19 февраля 2013

Живое событие теперь устарело, вместо этого вы должны использовать событие on. Это будет прикреплено к каждому входу в DOM, независимо от того, создан он еще или нет. Затем он добавит атрибут autocomplete = "off" к этому входу.

$(document).ready(function() {
  $(document).on('focus', ':input', function() {
    $(this).attr('autocomplete', 'off');
  });
});
2 голосов
/ 14 июня 2013

использовать jquery может быть недостаточно, потому что некоторые браузеры, такие как chrome, могут загружать сохраненные данные «автозаполнение» до готовности документа ($ (document) .ready)

jquery работает так

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

, но добавление вручную autocomplete='off' к тэгам ввода может быть более эффективным

0 голосов
/ 03 апреля 2019

Это прекрасно работает и в Chrome.

$("#autocmpldisablechk").click(function () {
    if (!$(this).is(":checked")) { 
        // enable autocomplete
        $("#autocomplete").autocomplete({
            disabled: false
        });
    }
    else { 
        // disable autocomplete
        $("#autocomplete").autocomplete({
            disabled: true
        });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...