我在Rails proyect中使用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(){“之外请求警报时,它都起作用,但是单击选择器却无济于事。工作吗?

最佳答案

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

10-05 21:52