清除或重置地理完整控制

时间:2014-07-18 08:42:06

标签: jquery google-maps-api-3 jquery-plugins geocomplete

我正在寻找一种方法来清除geocomplete(版本1.5.0)控件的结果。我已尝试过这里提到的各种方法,但无济于事。

这个想法是当用户在输入商业名称后清除该字段时我希望地理完整性也重置其内部"。现在,尽管该字段清除其输入,但只要它失去焦点(用户点击页面上的其他位置),地理完整就会放回输入的地址

<html>
....
<label for="geocomplete">Adress</label><input id="geocomplete" type="search" placeholder="Type you Address here" tabindex="1"/>
....
</html>

<javascript>
...
 $("#geocomplete").geocomplete({
    map: ".map_canvas",

    mapOptions: {
     zoom: 14,
     scrollwheel: false,
     mapTypeId: "roadmap",
     streetViewControl:false,
     mapTypeControl:false
    },

    types: ["establishment"],
  }).bind("geocode:result", function(event, result) {

     // do stuff here
    });

  //
  $('#geocomplete').on('input', function() {

   // Field empty... clear content
   if($("#geocomplete").val() == "")
   {
    // Clear

   //$('#geocomplete').data().autocomplete.term = null;
   //$("#geocomplete").geocomplete().autocomplete()[0].value = "";

   }
  });  

  ....
</javascript>

1 个答案:

答案 0 :(得分:0)

我只是在输入字段上注册一个事件监听器(每当用户键入我的情况时)并清除所有字段以响应它。注意:我也在最后调用geocomplete(&#39; initMap&#39;)来重置地图(我猜也是geocomplete的内部)。很抱歉它是CoffeeScript,但你应该明白这个想法:

@query_field.bind('input', => @resetLocation())

...

resetLocation: ->
  @reference_field.val(null)
  @city_field.val(null)
  @formatted_address_field.val(null)

  $( '#venue_details [name=name]' ).text('')
  $( '#venue_details [name=formatted_address]' ).text('')
  @query_field.removeClass( 'approved' )
  @query_field.geocomplete( 'initMap' )