jQuery помещает результат автозаполнения в текстовое поле

0

У меня есть input значение, которое имеет word id и функцию jQuery следующим образом:

$(function() {
var availableTags = ["register", "malloc", "device", "apre", "fallo"];
$("#word").autocomplete({
source: availableTags
});
});

Когда я ввожу текст в свой ввод, вызывается функция jQuery и показывает результаты. Здесь вы можете увидеть пример:

Изображение 174551

Я набрал "al", и он отображает все слова (в массиве), содержащие эти буквы. Здесь хорошо, но моя проблема заключается в следующем. Я хочу, чтобы результат отображался в textarea, а не как список.

Это означает, что malloc и fallo должны находиться внутри текстового fallo.

Есть ли у вас предложения? Вы можете найти скрипку с полным кодом здесь.

  • 0
    Вроде как автозаполнение в Microsoft Excel - при вводе текста в текстовом поле отображается результат наилучшего соответствия, а при продолжении ввода меняется наилучшее соответствие?
  • 0
    Да, ты прав. Но это не проблема, я только хочу, чтобы текст помещался внутри текстовой области. Я не хочу список
Показать ещё 1 комментарий
Теги:

2 ответа

1
Лучший ответ

Вот скрипка, которая скроет элементы меню автозаполнения и обновит текстовое поле с возвращенными элементами. Обратите внимание, что меню все еще существует, просто скрыто, чтобы не сломать виджет автозаполнения. Идея заключается в использовании метода ответа виджета для загрузки текстового поля с соответствующими значениями. Обратите внимание, что это скроет все меню автозаполнения на странице и не удалит текстовое поле, когда пользователь очистит все тет на входе, но он должен дать вам начало.

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"));
            }
        });
1

Трюк состоит в том, чтобы переопределить функцию плагина _renderMenu.

Вот быстрая демонстрация: http://jsfiddle.net/TVq9g/4/

  • 0
    Я тоже это пробовал, но проблема в том, что вы теряете функциональность вверх / вниз, потому что элемента <ul> больше нет. Учитывая текст над полем ввода, я предполагаю, что ОП хочет сохранить эту возможность. В целом, хотя я думаю, что переопределение _renderMenu будет лучшим вариантом, чем мое решение, если оно никак не нарушает виджет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню