0

我的网页上有带有“geocomplete”的文本输入。每个 keyPress 事件都会向 GoogleMaps API 发送请求。我想改变这种行为,即每 3 个字符(不是每个字母)发送请求或在请求之前设置延迟。

我尝试使用 geocode:beforegeocomelete_search 事件,但它不起作用。

$("input").geocomplete()
                .bind("geocode:beforegeocomelete_search", function(event, results){
                    if ( $("input").val().length < 4) {
                        throw "At least 3 characters required for request sending";
                    }
                });

你对这件事有什么想法吗?

4

1 回答 1

0

不确定您使用的是哪个版本的 geocomplete。https://github.com/ubilabs/geocomplete/上的版本有一个满足要求trigger()时可以调用的版本。inputlength

注意:由于某种原因,外部库似乎没有加载到代码段中。

let geo = $('.geocomplete');

geo.geocomplete();
geo.on('input', function() {
  let el = $(this);
  
  if (el.val().length > 3) {
    el.trigger("geocode");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://raw.githubusercontent.com/ubilabs/geocomplete/master/jquery.geocomplete.min.js"></script>
<input class="geocomplete" />

于 2019-06-04T17:49:55.247 回答