यहाँ एक सरल कोड है जो मेरे लिए अच्छी तरह से काम करता है (कोई जॉकरी का उपयोग नहीं करता है)।
const googleAutcompleteField = this.renderer.selectRootElement(this.elem.nativeElement);
this.selectOnEnter(googleAutcompleteField);
कोड का यह टुकड़ा, ऊपर दिए गए कोड का पालन करने के लिए, इस सवाल में मांगी गई Google कुंजी को स्वतः पूर्ण करने के लिए उपयोग किया जाता है (इस कुंजी में दर्ज की गई कार्यक्षमता के बिना या उसके बिना):
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();
}
})
}
यह कोड गूगल मैप्स को स्वत: पूर्ण फ़ील्ड चुनता है, जो भी आइटम यूजर चुनता है, वह डाउन एरो कीप के साथ आता है। एक बार जब उपयोगकर्ता Enter कुंजी के प्रेस के साथ एक विकल्प का चयन करता है, तो कुछ भी नहीं होता है। उपयोगकर्ता को onSubmit () या अन्य कमांड को ट्रिगर करने के लिए फिर से Enter दबाना होगा