У меня есть input
значение, которое имеет word
id и функцию jQuery следующим образом:
$(function() {
var availableTags = ["register", "malloc", "device", "apre", "fallo"];
$("#word").autocomplete({
source: availableTags
});
});
Когда я ввожу текст в свой ввод, вызывается функция jQuery и показывает результаты. Здесь вы можете увидеть пример:
Я набрал "al", и он отображает все слова (в массиве), содержащие эти буквы. Здесь хорошо, но моя проблема заключается в следующем. Я хочу, чтобы результат отображался в textarea
, а не как список.
Это означает, что malloc
и fallo
должны находиться внутри текстового fallo
.
Есть ли у вас предложения? Вы можете найти скрипку с полным кодом здесь.
Вот скрипка, которая скроет элементы меню автозаполнения и обновит текстовое поле с возвращенными элементами. Обратите внимание, что меню все еще существует, просто скрыто, чтобы не сломать виджет автозаполнения. Идея заключается в использовании метода ответа виджета для загрузки текстового поля с соответствующими значениями. Обратите внимание, что это скроет все меню автозаполнения на странице и не удалит текстовое поле, когда пользователь очистит все тет на входе, но он должен дать вам начало.
CSS, чтобы скрыть пункты меню автозаполнения:
.ui-autocomplete li { display: none; }
Дополнительный код для получения ответов на текстовое поле:
$( "#word" ).autocomplete({
source: availableTags,
response: function( event, ui ) {
$("#testo").val(ui.content.map(function(d) {
return d.label;
}).join("\n"));
}
});
Трюк состоит в том, чтобы переопределить функцию плагина _renderMenu
.
Вот быстрая демонстрация: http://jsfiddle.net/TVq9g/4/