抢先使用google.maps.places.Autocomplete对象

时间:2019-01-28 17:21:23

标签: google-maps google-places-api googleplacesautocomplete

我在一页上有两个主要的脚本。一个是在整个网站范围内,并在网站上的每个$("input.input-location")上实现Google自动完成功能。另一个仅在搜索页面上。我需要在第二个脚本中使用自动完成对象的getPlace()方法。它们被很好地分割,并且不占用任何全局变量,在这种情况下会带来问题。我无法从特定位置输入中获取原始对象。我不能轻易更改站点范围的脚本,尽管我必须这样做。而且我不能只更改特定对象的类,因为a)我还必须更改/添加到CSS,b)我必须重写所有要在站点范围内保持一致的选项和限制。

如果我创建一个新的自动完成对象,则第二个对象具有正确的getPlace(),而第一个对象的getPlace()方法返回未定义。在第一个脚本中,我使用该位置来确定是否应将输入值更改为第一个PAC值。如果我更改输入值,那么没人会输出正确的getPlace()

因此,我不想创建新的自动填充对象。我该如何仅访问DOM输入元素来获取第一个自动完成对象?

在您问之前,是的,我一直在寻找答案。相反,出现了其他问题的答案,例如Google Places Autocomplete API Multiple Instances,那里的问题恰恰相反:他们有多个输入,并且他们想要单独的对象,并最终在偶然的情况下引用了第一个对象。我也无法在Google的API文档中找到解决方案。

1 个答案:

答案 0 :(得分:0)

解决方法:

$("#searchForm").off("submit");这将删除我添加到每个位置输入的父窗体中的eventHandler。

然后我在位置输入中创建一个新的Google自动填充对象。

然后,我重写了原始功能,但最终还是需要自定义内容。

同样,这只是一个解决方法。我仍然有两个对象。我只是不再有第一个物体弄乱东西。我仍然想要一个真正的答案。