【问题标题】:Triggering Google Places Autocomplete Places places changed when text input same value of one of the selections当文本输入与选择之一相同的值时,触发 Google Places Autocomplete Places 地点发生变化
【发布时间】:2013-02-04 13:49:19
【问题描述】:

我正在使用 Google Places Autcomplete API 和 jQuery。它的基本功能运行良好。我想做的是,如果有人在自动完成中键入了与我希望选择该项目并触发 place_changed 事件的选择之一完全相同的内容。这是因为我在需要触发的地方更改了侦听器中有一些逻辑。这个想法是,如果有人键入与自动完成选项之一完全相同的文本,那么它应该表现得好像有人点击了该选项。

这是我尝试过的,其中 userLocation 是输入:

$("#userLocation").keyup(function(e){
    //if the text is at least 4 chars long
    if($("#userLocation").val().length > 4)
    {
        //iterate through each of the autocomplete options
        $(".pac-item").each(function(){
            if($(this).text() == $("#userLocation").val() )
            {
                //does not do what I need it to
                $(this).trigger("place_changed");
            }
        });
    }
});

我也尝试用.trigger("click") 替换trigger("place_changed"),但无济于事。

以前有人这样做过吗?任何人都可以提出另一种尝试使这项工作的方法吗?任何建议将不胜感激,谢谢!

【问题讨论】:

    标签: jquery google-api google-places-api


    【解决方案1】:

    如回答here中提到的:

    您必须调用google.maps.event.trigger 函数,从而导致如下调用。

    $("#userLocation").keyup(function(e){
        //if the text is at least 4 chars long
        if($("#userLocation").val().length > 4)
        {
            //iterate through each of the autocomplete options
            $(".pac-item").each(function(){
                if($(this).text() == $("#userLocation").val() )
                {
                    google.maps.event.trigger(autocomplete, 'place_changed');
                }
            });
        }
    });
    

    documentation 显示您还可以将参数传递给 trigger 函数,该函数将传递给“place_changed”事件的事件侦听器。

    【讨论】:

      【解决方案2】:

      您也可以尝试使用自动完成输入键事件并使用 javascript 触发。

      请尝试以下代码。

      //For Set Location pin point
      var searchtext = "New York, NY";
      var input = document.getElementById('pac-input');
      $('#pac-input').val(searchtext);                        
      setTimeout(function () {
      google.maps.event.trigger(input, 'focus');
      google.maps.event.trigger(input, 'keydown', { keyCode: 13 });                            
      }, 10);
      //End 
      

      【讨论】:

        猜你喜欢
        • 2014-05-31
        • 2017-10-10
        • 1970-01-01
        • 2021-11-21
        • 2015-03-19
        • 1970-01-01
        • 2015-10-24
        • 1970-01-01
        • 2015-06-26
        相关资源
        最近更新 更多