Для объяснения того, как typeahead работает для того, что вы хотите сделать, приведем следующий пример кода:
Поле ввода HTML:
<input type="text" id="my-input-field" value="" />
Блок кода JavaScript:
$('#my-input-field').typeahead({
source: function (query, process) {
return $.get('json-page.json', { query: query }, function (data) {
return process(data.options);
});
},
updater: function(item) {
myOwnFunction(item);
var $fld = $('#my-input-field');
return item;
}
})
Объяснение:
- Ваше поле ввода установлено как поле ввода заголовка с первой строкой:
$('#my-input-field').typeahead(
- При вводе текста запускается *Параметр 1015 * для извлечения списка JSON и его отображения пользователю.
- Если пользователь щелкает элемент (или выбирает его с помощью клавиш курсора и ввода), он затем запускает параметр
updater:
. Обратите внимание, что оно еще не обновило текстовое поле с выбранным значением . - Вы можете получить выбранный элемент, используя переменную
item
, и делать с ним все, что хотите, например myOwnFunction(item)
. - Я включил пример создания ссылки на само поле ввода
$fld
, на случай, если вы захотите что-то с ним сделать. Обратите внимание, что вы не можете ссылаться на поле, используя $ (this) . - . Вы должны , затем включите строку
return item;
в опцию updater:
, чтобыполе ввода фактически обновляется с помощью переменной item
.