2014-10-10 4 views
4

В плагине автозаполнения jQuery, где значение, которое пользователь напечатал вручную? Например, посмотрите на http://jqueryui.com/autocomplete/. Если вы наберете «j» в окне поиска, вы увидите некоторые параметры. Вы можете использовать клавиши со стрелками, чтобы пройти через параметры, и вернуться к «j», который вы изначально набрали, даже если он не отображается как один из параметров в раскрывающемся списке.jQuery Autocomplete: Как получить исходный текст пользователя

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

+0

Когда я использую демонстрации на сайте пользовательского интерфейса jquery, я не могу вернуться к «j». – SamHuckaby

+0

Это работает для меня (на хроме). Этот вопрос интересен, я попытаюсь это выяснить. – Dionys

+1

@SamHuckaby выберите предложение и нажмите esc Dionys

ответ

2

Вы хотите использовать событие open для захвата исходного ввода всякий раз, когда список открывается или обновляется. Внутри этого события выполняется запись исходного ввода. Затем вы можете занести это значение в переменную или скрытый элемент, который будет использоваться позже. Дайте мне знать, если вам нужно больше деталей.

$("#tags").autocomplete({ 
    source: availableTags, 
    open: function(event, ui) { 
     $("#original-content").html($("#tags").val()); 
    } 
}); 

Смотрите рабочий jsfiddle здесь: http://jsfiddle.net/rlouie/p7dthpz0/1/

+0

Ах, отлично! Я думаю, что это нужно. Все еще немного любопытно, доступен ли он где-либо в функции «select» и как сам плагин отслеживает значение, чтобы вы могли его снова выбрать. Но это должно быть достаточно хорошо для моих целей. – tgarv

+0

Функция выбора срабатывает по фактическому выбору, но когда это событие запущено, появляется значение ввода, которое уже установлено, и поэтому вы не можете получить исходное значение в select. Если этот ответ будет работать, можете ли вы пометить его как ответ, пожалуйста? –

1

Так я рытье немного в источник. Плагин отслеживает значение, введенное в атрибут private плагина, называемый термином.
Я не смог вывести его из исходного кода:/

Смежные вопросы