gpt4 book ai didi

javascript - 如何判断何时未使用谷歌地方自动完成建议?

转载 作者:可可西里 更新时间:2023-11-01 02:09:00 25 4
gpt4 key购买 nike

简短版:

我正在使用来自 Google Places Library(此处为 https://developers.google.com/maps/documentation/javascript/places)的 google 自动完成地点,我需要告知用户何时从自动完成列表中选择了一个地点,以及他们何时点击了其他地方、跳出标签等.

我的目标是在用户与输入元素交互但选择自动完成选项时运行一个函数。

更多详情:

在查看文档时,似乎唯一的事件是在(实际上,如果)位置发生变化时触发的,这发生在(可能很长的)服务器往返之后。如果用户未从列表中选择任何内容,则永远不会触发该事件。 (文档位于 https://developers.google.com/maps/documentation/javascript/reference?hl=fr#Autocomplete)

我可以为自动完成附加到的输入元素的模糊事件附加一个监听器,但问题是模糊事件发生在 places_changed 事件发生之前。

到目前为止,已经尝试了很多事情,包括使用类似以下内容的自动完成建议来监听事件:

$('body').on('click', '.pac-item', function(){alert.log('yay!');});

谷歌图书馆显然吃掉了这些事件。

如有任何帮助,我们将不胜感激。

谢谢!

最佳答案

您应该检查表单何时提交,而不是使用事件来检查。这是一步一步的:

  1. 当用户选择一个地方时,存储这个地方和输入的文本值
  2. 表单提交时,检查输入的值是否与保存的值相同
  3. 如果不同,或者没有保存位置,则执行手动位置请求

演示:http://jsfiddle.net/robertdodd/FSRd8/7/

我在上面整理了一个小演示。我所做的是将验证方法附加到表单。此方法将在提交表单之前检查数据,如果需要,首先执行手动查找。

function validateForm() {
searchfield = $('#searchfield').val();
if (searchfield == "" || searchfield == null) {
// No text entered
} else if (place && searchfield == placesearch) {
// Success
return true;
} else {
// place info and search text do not match, perform manual lookup
// when lookup is complete, the callback function will store the place info
// and resubmit the form
}
return false;
}

这只是所发生情况的概要,如果您希望查看,所有代码都在演示中。

希望对你有帮助!

关于javascript - 如何判断何时未使用谷歌地方自动完成建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14272594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com