Использование Google Maps Searchbox с автозаполнением:
Если пользователь вводит имя, отображающее результаты, и нажимает Enter перед выбором фактического результата, событие "places_matched" все еще срабатывает, и API выбирает для них результат.
Как заставить пользователя выбрать/выделить результат автозаполнения или, по крайней мере, обнаружить где-то, что они фактически не выбрали результат и не заблокировали запрос?
Смотрите jsfiddle здесь: http://jsfiddle.net/4rs1mgno/2/
В текстовом вводе введите что-нибудь и нажмите enter. Я печатаю "тестирование" и выводит "Центр тестирования BYU". Я не хочу, чтобы ничего не происходило, поскольку они фактически не выбирали вариант.
Здесь JS-код из скрипта:
$(function(){
var input = document.getElementById('pac-input');
var options = {
keyword: 'establishment'
}
var searchBox = new google.maps.places.SearchBox(input, options);
searchBox.addListener('places_changed', function(evt) {
console.log('changed');
var places = searchBox.getPlaces();
if (places.length == 0) {
return;
}
places.forEach(function(place) {
$('#output').append(place['name']);
});
});
});
Спасибо!
В SO есть много похожих вопросов, но ни один из них не соответствует этому.