Bất cứ nơi nào bạn hiện đang gọi autocomplete.unbindAll()
thay vì (cũng?) Hãy gọi input.parentNode.removeChild(input)
? Đó là những gì diễn ra trong câu trả lời tuyệt vời cho What is the correct way to completely remove GoogleMaps Autocomplete?
Tuy nhiên, không giống như câu hỏi đó, bạn phàn nàn về 'nhiều hộp thả xuống'.
Nó có vẻ như thực vấn đề của bạn là bạn đang gọi new google.maps.places.Autocomplete(...)
nhiều hơn một lần, chống lại khác nhau input
nút. Bạn không thể tránh điều đó sao? Khi bạn đang 'tạo' một nút mới, chỉ cần kéo nút 'được khởi tạo' đến vị trí trong tài liệu mà bạn muốn sử dụng nó ngay bây giờ, bằng cách sử dụng API JS DOM. Ẩn nó nếu bạn muốn nó ra khỏi tầm nhìn tạm thời.
Dường như khó khăn hơn một chút nếu bạn đang sử dụng khung công tác ràng buộc, nhưng bạn phải nhận cuộc gọi đó tới new Autocomplete
trong bất kỳ điều gì nó đang thực hiện, bằng cách nào đó.
Nguồn
2015-11-04 12:49:48
'đầu vào' đề cập đến là gì? bạn đã định nghĩa nó như là một biến, ví dụ 'var input = (document.getElementById (' zipcode '));'? –
tất nhiên. nó là một phần tử html – thelolcat
bạn có thể cung cấp một số fiddle hoặc plunker –