我使用谷歌地图的地方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