我有一个使用自动完成的谷歌地图搜索框(当用户在字段中输入文本时,会出现地址建议的下拉列表)。
我想确保当用户提交表单时,字段中的文本是实际的自动完成建议。
我的目标是确保输入的文本是一个实际的地址,而不是一个随机字符串。
我遇到了类似的问题(给定字段中的任何内容都应该是有效的谷歌地图地址),并根据这个问题构建了一个解决方案,这可能会对您有所帮助。想法是:
- 当用户除了点击谷歌地图建议之外做其他事情时
- 触发事件将焦点转移到第一个建议上
- 触发事件以选择它
我为自己的代码复制结果(使用Jquery):
//// Ensuring that only Google Maps adresses are inputted
function selectFirstAddress (input) {
google.maps.event.trigger(input, 'keydown', {keyCode:40});
google.maps.event.trigger(input, 'keydown', {keyCode:13});
}
// Select first address on focusout
$('#content').on('focusout', 'input#xxx__zzz', function() {
selectFirstAddress(this);
});
// Select first address on enter in input
$('#content').on('keydown', 'input#xxx__zzz', function(e) {
if (e.keyCode == 13) {
selectFirstAddress(this);
}
});
对我来说,它是有效的,我希望它能有所帮助!
下面的链接描述了一个示例,您可以在其中访问自动完成建议:https://developers.google.com/maps/documentation/javascript/examples/places-queryprediction