jquery - 清除或重置地理完整控制

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

我正在寻找一种方法来清除 geocomplete(版本 1.5.0)控件的结果。我已经尝试了此处提到的各种方法,但没有成功。

这个想法是,当用户在输入公司名称后清除字段时,我希望 geocomplete 也重置其“内部结构”。现在,虽然该字段清除了其输入,但一旦失去焦点(用户单击页面上的其他位置),geocomplete 就会放回输入的地址

<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>

最佳答案

我只需在输入字段上注册一个事件监听器(每当用户在我的情况下键入时)并清除所有字段以响应它。注意:我还在最后调用 geocomplete('initMap') 来重置 map (我猜也是 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' )

关于jquery - 清除或重置地理完整控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24820752/

相关文章:

javascript - 在 jQuery 中选择具有特定类的所有列表项

javascript - 使用 javascript 聚焦输入字段?

JQuery AppendTo 标题属性

jquery - 如何根据 geoJSON 要素的 id 对其进行不同的着色? (谷歌地图)

javascript - 谷歌地图拖动矩形来选择标记

php - 为 jquery + php 创建永久链接

javascript - 多条折线相互重叠 - 带一条 "to the front"

jQuery 滑出效果问题

javascript - 如何使用 TinyMCE 粘贴插件允许 HTML 标签?

javascript - 如何自定义jquery-jtable创建对话框