Oto prosty kod, który działał dobrze dla mnie (nie używa jquery).
const googleAutcompleteField = this.renderer.selectRootElement(this.elem.nativeElement);
this.selectOnEnter(googleAutcompleteField);
Ten fragment kodu, zgodnie z powyższym kodem, służy do implementacji autouzupełniania map Google (z lub bez funkcji klawisza Enter poszukiwanej w tym pytaniu):
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 (wywołany powyżej w pierwszym fragmencie kodu) zdefiniowano:
selectOnEnter(inputField) {
inputField.addEventListener("keydown", (event) => {
const selectedItem = document.getElementsByClassName('pac-item-selected');
if (event.key == "Enter" && selectedItem.length != 0) {
event.preventDefault();
}
})
}
Ten kod sprawia, że pole autouzupełniania map Google wybiera dowolny element, który użytkownik wybierze za pomocą klawisza strzałki w dół. Gdy użytkownik wybierze opcję za pomocą naciśnięcia klawisza Enter, nic się nie dzieje. Użytkownik musi ponownie nacisnąć klawisz Enter, aby wywołać onSubmit () lub inne polecenie