Ответ 1
Вы можете удалить поведение автозаполнения, используя следующую строку кода:
if (jQuery(control).data('autocomplete')) {
jQuery(control).autocomplete("destroy");
jQuery(control).removeData('autocomplete');
}
После добавления автозаполнения к элементу вроде:
commObj=$("#communityName").autocomplete("auto_commName_backend.php",
{'onItemSelect': handleItemSelect}, {'extraParams': 'ndo' + ndo});
Есть ли способ отключить его или удалить автозаполнение для элемента динамически?
Я использую модифицированный плагин автозаполнения jquery от Dylan Verheul. http://www.pengoworks.com/workshop/jquery/autocomplete_docs.txt
Вы можете удалить поведение автозаполнения, используя следующую строку кода:
if (jQuery(control).data('autocomplete')) {
jQuery(control).autocomplete("destroy");
jQuery(control).removeData('autocomplete');
}
Самый простой и безопасный способ:
$(control).autocomplete({source: []});
В качестве альтернативы, как упоминалось ранее, это также работает:
$(control).autocomplete("destroy");
Если вы уверены, что ваш элемент управления имеет набор обработчиков автозаполнения.
В последней версии jQuery UI (1.12), $(control).data('autocomplete')
не возвращается true, даже когда имеются данные автозаполнения.
Вместо этого проверка наличия класса ui-autocomplete-input
вернулась.
Я думаю, что этого достаточно.
if ($(control).hasClass('ui-autocomplete-input')) {
$(control).autocomplete("destroy");
}
Этот плагин прочно соединяет себя с <input>
довольно сильно. Если это была моя страница, я думаю, что у меня было бы только два тега с тем же "именем", один с автозаполнением и один без него. Когда я хотел переключаться между ними, я сделал бы один отключенный и скрытый, и включил/покажу другой. (отредактируйте oh, а также убедитесь, что значения полей копируются взад и вперед при их переключении)
Если вы добавите класс, например, "EnableAC" к вашему элементу, вы можете настроить таргетинг на этот класс для автозаполнения. Когда вы заполняете автозаполнение и хотите его отключить, вы удаляете этот класс.
Почему вы хотите отключить эту функцию? Это может смутить ваших пользователей, если они хотят изменить свой выбор, и автозаполнение не срабатывает.
Я только что просмотрел файл js для плагина.
Кажется, что есть строка javascript (номер 21) во время инициализации плагина jquery.autocomplete.js, который устанавливает исходный исходный вход как:
input.autocompleter = me;
Без тестирования, может быть, вы могли бы просто вызвать следующее, чтобы удалить ссылку между плагином и исходным входом?
$('#<your input id>').autocompleter = null;
Я просто попробовал $ ('#'). autocomplete = null; и это работает. Я разрешал изменение имени мухи, и результат не показывался, теперь это происходит. Старое неизменное имя покажет, что новый делает
Отключить автозаполнение по идентификатору элемента:
$("#elementId").autocomplete({
disabled: true
});