Как удалить автозаполнение после добавления в элемент?

После добавления автозаполнения к элементу вроде:

commObj=$("#communityName").autocomplete("auto_commName_backend.php",
                {'onItemSelect': handleItemSelect}, {'extraParams': 'ndo' + ndo});

Есть ли способ отключить его или удалить автозаполнение для элемента динамически?

Я использую модифицированный плагин автозаполнения jquery от Dylan Verheul. http://www.pengoworks.com/workshop/jquery/autocomplete_docs.txt

Ответы

Ответ 1

Вы можете удалить поведение автозаполнения, используя следующую строку кода:

if (jQuery(control).data('autocomplete')) {
  jQuery(control).autocomplete("destroy");
  jQuery(control).removeData('autocomplete');
}

Ответ 2

Самый простой и безопасный способ:

$(control).autocomplete({source: []});

В качестве альтернативы, как упоминалось ранее, это также работает:

$(control).autocomplete("destroy");

Если вы уверены, что ваш элемент управления имеет набор обработчиков автозаполнения.

Ответ 3

В последней версии jQuery UI (1.12), $(control).data('autocomplete') не возвращается true, даже когда имеются данные автозаполнения.

Вместо этого проверка наличия класса ui-autocomplete-input вернулась.

Я думаю, что этого достаточно.

if ($(control).hasClass('ui-autocomplete-input')) {
   $(control).autocomplete("destroy");
}

Ответ 4

Этот плагин прочно соединяет себя с <input> довольно сильно. Если это была моя страница, я думаю, что у меня было бы только два тега с тем же "именем", один с автозаполнением и один без него. Когда я хотел переключаться между ними, я сделал бы один отключенный и скрытый, и включил/покажу другой. (отредактируйте oh, а также убедитесь, что значения полей копируются взад и вперед при их переключении)

Ответ 5

Если вы добавите класс, например, "EnableAC" к вашему элементу, вы можете настроить таргетинг на этот класс для автозаполнения. Когда вы заполняете автозаполнение и хотите его отключить, вы удаляете этот класс.

Почему вы хотите отключить эту функцию? Это может смутить ваших пользователей, если они хотят изменить свой выбор, и автозаполнение не срабатывает.

Ответ 6

Я только что просмотрел файл js для плагина.

Кажется, что есть строка javascript (номер 21) во время инициализации плагина jquery.autocomplete.js, который устанавливает исходный исходный вход как:

input.autocompleter = me;

Без тестирования, может быть, вы могли бы просто вызвать следующее, чтобы удалить ссылку между плагином и исходным входом?

$('#<your input id>').autocompleter = null;

Ответ 7

Я просто попробовал $ ('#'). autocomplete = null; и это работает. Я разрешал изменение имени мухи, и результат не показывался, теперь это происходит. Старое неизменное имя покажет, что новый делает

Ответ 8

Отключить автозаполнение по идентификатору элемента:

 $("#elementId").autocomplete({
  disabled: true
  });