Я использую typeahead.js, и это здорово, но вот мой вариант использования: у меня есть текстовое поле, которое уже заполнено строкой на стороне сервера при загрузке страницы, поэтому я не хочу, чтобы меню предложений было отображается, когда пользователь фокусирует текстовое поле.
typeahead.js, кажется, всегда показывает меню при фокусировке на текстовом поле. Это имеет смысл, поскольку minLength
равно 2, а значение текстового поля похоже на «Тони» (или что-то еще). Но я пробовал использовать hint: false
и вызывать $('.typeahead').typeahead('close')
внутри обратного вызова для события typeahead:active
, и ни один из них, похоже, не останавливает отображение меню.
Вот код инициализации, который я использую:
$('#locationInput').typeahead({
hint: false,
highlight: false,
minLength: 2
},
{
name: 'locations',
display: 'name',
source: typeaheadLocations, // a simple Bloodhound instance
templates: {
suggestion: function(locationObj) {
return $('<div>' + locationObj.name + '</div>');
}
}
});
Существует есть небольшая задержка между тем, когда я фокусирую текстовое поле, и фактическим отображением меню, потому что нужно запустить удаленный GET. Поэтому я предполагаю, что мне нужно будет как-то предотвратить это после того, как он будет сфокусирован.