我使用谷歌地圖的地方API來自動完成搜索輸入值。敲除文本輸入綁定不更新值
<input data-bind="textInput: searchInput" id="location" type="text">
所以,當我在輸入框中開始輸入,例如I型Ro
,然後從自動完成建議我選擇Rome
,然後點擊提交的searchInput()
值仍然被設置爲Ro
,而不是Rome
。 如何在選擇自動完成建議後更新searchInput()
?
我使用谷歌地圖的地方API來自動完成搜索輸入值。敲除文本輸入綁定不更新值
<input data-bind="textInput: searchInput" id="location" type="text">
所以,當我在輸入框中開始輸入,例如I型Ro
,然後從自動完成建議我選擇Rome
,然後點擊提交的searchInput()
值仍然被設置爲Ro
,而不是Rome
。 如何在選擇自動完成建議後更新searchInput()
?
從自動完成中選擇時,Google地圖會觸發place_changed
事件。您可以捕獲該事件並觸發元素上的input
事件敲除可以閱讀:
google.maps.event.addListener(autocomplete, 'place_changed', function() {
ko.utils.triggerEvent(input, "input");
});
,因爲我用淘汰賽它已經有一段時間,但您的視圖模型裏面,你定義你的searchInput你會創建一個computedFunction。當文本框中的值發生更改時,它會觸發自動完成功能,並且在選擇該值時會更新將更新文本框的searchInput。不確定是否存在無限循環,因此請務必進行測試和調整。
google.maps.event.addListener(autocomplete, 'place_changed', function() {
self.searchInput('autocompleteValue');
});
self.UseAutoComplete = ko.computedFunction((
google.maps.places.Autocomplete(self.searchInput());
));
哪裏是自動完成的控制,你可以發佈這些代碼呢?你可以嘗試使用select2。 https://select2.github.io/ – Agalo
這是一個谷歌地圖的地方API功能,'var locationAutocomplete = new google.maps.places.Autocomplete(document.getElementById('location'));' – Hue
在這種情況下,你可以從JS代碼設置searchInput變量的值。我相信locationAutocomplete應該爲您提供在自動完成中選擇的值。 – Agalo