Aquí hay un código simple que funcionó bien para mí (no usa jquery).
const googleAutcompleteField = this.renderer.selectRootElement(this.elem.nativeElement);
this.selectOnEnter(googleAutcompleteField);
Este fragmento de código, para seguir el código anterior, se utiliza para implementar el autocompletado de mapas de Google (con o sin la funcionalidad de la tecla Enter que se busca en esta pregunta):
this.autocomplete = new google.maps.places.Autocomplete(googleAutcompleteField, this.googleMapsOptions);
this.autocomplete.setFields(['address_component', 'formatted_address', 'geometry']);
this.autocomplete.addListener('place_changed', () => {
this.zone.run(() => {
this.googleMapsData.emit([this.autocomplete.getPlace()]);
})
})
selectOnEnter (llamado arriba en el primer fragmento de código) definido:
selectOnEnter(inputField) {
inputField.addEventListener("keydown", (event) => {
const selectedItem = document.getElementsByClassName('pac-item-selected');
if (event.key == "Enter" && selectedItem.length != 0) {
event.preventDefault();
}
})
}
Este código hace que el campo de autocompletar de Google Maps seleccione cualquier elemento que el usuario seleccione con la tecla de flecha hacia abajo. Una vez que el usuario selecciona una opción presionando la tecla Enter, no sucede nada. El usuario tiene que presionar Enter nuevamente para activar onSubmit () u otro comando