Ось простий код, який мені добре працював (не використовує jquery).
const googleAutcompleteField = this.renderer.selectRootElement(this.elem.nativeElement);
this.selectOnEnter(googleAutcompleteField);
Цей фрагмент коду, щоб слідувати наведеному вище коду, використовується для реалізації автозаповнення карт Google (з функцією клавіші Enter або без неї, яку шукають у цьому питанні):
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 (викликається вище в першій частині коду) визначено:
selectOnEnter(inputField) {
inputField.addEventListener("keydown", (event) => {
const selectedItem = document.getElementsByClassName('pac-item-selected');
if (event.key == "Enter" && selectedItem.length != 0) {
event.preventDefault();
}
})
}
Цей код робить поле автозаповнення карт Google вибором того елемента, який користувач вибере натисканням клавіші зі стрілкою вниз. Коли користувач вибирає опцію натисканням клавіші Enter, нічого не відбувається. Користувач повинен натиснути Enter ще раз, щоб запустити onSubmit () або іншу команду