0

我在 Rails 项目中使用 geocomplete 时遇到问题,基本上我想使用 geocomplete 自动填充一个地方,但是表单拒绝工作,我尝试了不太复杂的 geocomplete 功能,但似乎没有任何工作正常。

顺便说一句,我正在使用“geocomplete_rails”gem。

我复制粘贴的这段代码来自 geocomplete 示例之一,只是更短:

<div id="my_input">

  <input id="geocomplete" type="text" placeholder="Type in an address" 
  autocomplete="off">
  <input class="find_me" type="button" value="Encuentra">
  <div id="my_map">

  </div>

  <div id="my_form">

  </div>

</div>

这是geo.js

$("#geocomplete").click(function(){
  console.log("Go");
  $("input").trigger("geocode");
});

$("#my_input").geocomplete({
  map: "#my_mappu",
  mapOptions: {
    zoom: 10
  },
  markerOptions: {
    draggable: true
  },
  details: "#my_form"
});

我的代码中已经有 googlemaps api,在我的 html 头部内

<script 
  src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAwAw8El2ksHEry1EmoX6LIoZJsFIPXmdc&libraries=places&"
  async defer>
</script>

这是我需要的js文件

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require bootstrap-sprockets
//= require cocoon
//= require turbolinks
//= require dropzone
//= require timepicker
//= require datepicker
//= require jquery-ui
//= require geocomplete
//= require geo
//= require_tree .

对我来说最奇怪的是,每当我在 "$("#geocomplete").click(function(){" 之外请求警报时,它都会起作用,但单击选择器什么也没做。关于为什么会这样的任何想法不工作?

4

1 回答 1

1

在这里你有你的 HTML

<div id="my_input">

  <input id="geocomplete" type="text" placeholder="Type in an address" 

...

因此,您输入的 id 是geocomplete,而不是my_input

而不是打电话

$("#my_input").geocomplete({ ...

你应该打电话

$(document).ready(function() {

  $("#geocomplete").geocomplete({
    ...

除此之外,你想把这条线

<script src="https://maps.googleapis.com/maps/api/js?key=xxx&librari‌​es=places&" async defer> </script>

在您的头部部分的顶部,就在该<title>部分之后


为了帮助未来的人,我用一个可以运行的 Rails 应用程序制作了一个非常简单的开源 github 存储库 => https://github.com/Poilon/super-simple-gplaces

于 2017-06-10T10:46:22.437 回答