Cómo deshabilitar enter cuando la opción de autocompletar no está seleccionada: Google Maps SearchBox
Uso de Google Maps Searchbox con autocompletar:
Si un usuario ingresa un nombre que muestra resultados, y presiona Enter antes de seleccionar un resultado real, el evento 'places_matched' aún se dispara y la API elige un resultado para ellos.
¿Cómo puedo obligar al usuario a seleccionar / resaltar un resultado de autocompletar, o al menos detectar en algún lugar que realmente no seleccionó un resultado y bloquear la solicitud?
Vea el jsfiddle aquí:http://jsfiddle.net/4rs1mgno/2/
En el ingreso de texto, ingrese cualquier cosa y presione enter. Escribo 'testing' y sale "BYU Testing Center". No quiero que pase nada, ya que en realidad no seleccionaron una opción.
Aquí está el código JS del violín:
$(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']);
});
});
});
¡Gracias!
Aquí hay muchas preguntas similares sobre SO, pero ninguna que coincida con esto.