Я хочу предоставить функциональность typeahead, используя bootstrap3-typeahead.js (который является поддерживаемой вилкой typeahead.js) с удаленными данными. Однако, когда пользователь быстро набирает и нажимает клавишу ввода для отправки запроса, всплывающая подсказка все же появляется. Я подумал, что простой способ исправить эту проблему - просто отменить запрос ajax, когда пользователь нажимает клавишу ввода. Однако это не работает.Как закрыть подсказку после того, как пользователь отправит запрос с помощью Bootstrap3-Typeahead?
Основываясь на обратной связи charlietfl, это происходит потому, что запрос получен до того, как пользователь нажал любую клавишу. Поэтому, возможно, мне нужен другой способ удалить всплывающую подсказку, когда пользователь нажимает клавишу ввода. Я был бы рад получить предложение о том, как это сделать.
Это demo. Если вы наберете, например, «Собака» быстро и нажмите «Ввод», я предположительно прерываю запрос, но результаты все еще отображаются.
$(document).ready(function() {
var req;
$('.typeahead').typeahead(
{
name: 'animals',
display: 'value',
items: 'all',
delay: 500,
source: function(query, process) {
var url = "http://api.gbif.org/v1/species/match?verbose=true&kingdom=Plantae&name=" + query;
req = $.get(url, function(data) {
data = $.map(data['alternatives'], function(name) {
return {
name: name['scientificName']
};
})
process(data);
});
return req
}
})
.on('keydown', function(event) {
console.log('keydown');
if(event.which == 13) {
console.log('enter key');
if (req) {
console.log('req',req);
req.abort();
}
}
});
});
С уважением
Потому что есть еще один аналогичный обработчик событий в плагине. Он поддерживает выбор клавиатуры. Логика того, что вы делаете, не соответствует потоку обработки ввода пользователем плагина. – charlietfl
Можете ли вы подробнее рассказать о своем ответе? Вы имели в виду, что bootstrap3-typeahead уже имеет возможность отменить запрос после определенного нажатия клавиши? –
Нет Я имею в виду, что запросы сделаны до того, как кто-либо нажал Enter – charlietfl