只有在选中输入后,才能获取Google自动填充值

时间:2013-05-25 20:42:40

标签: javascript google-places-api

我希望仅在为用户选择其中一个下拉选项时,才能从我的Google广告位置自动完成输入。我不想要像'shdkajdjjdoiacn'这样的输入。我怎样才能做到这一点?我使用的代码是:

function initialize() {
  var mapOptions = {};
  var input = /** @type {HTMLInputElement} */(document.getElementById('searchTextField'));
  var autocomplete = new google.maps.places.Autocomplete(input);
}
$('button').click(function(){
console.log(autocomplete.description);
});

google.maps.event.addDomListener(window, 'load', initialize);

1 个答案:

答案 0 :(得分:2)

Autocomplete()函数在用户退出输入字段时引发事件。您可以使用该事件填充一组隐藏字段,其中包含自动填充提供的值。如果没有从下拉列表中进行有效选择,那么这些值将保持空白,因此您可以根据这些字段是否包含数据来确定程序逻辑。自动填充在不同字段中提供的值的示例:街道,城市,州,国家/地区,LatLng坐标。

为此,请在initialize()函数中添加与以下内容类似的代码:

function initialize() {
  /* existing lines of code */
  var autocomplete = new google.maps.places.Autocomplete(input);

  /* When user selects an address from the dropdown, 
     populate the address fields in the form */
  google.maps.event.addListener(autocomplete, 'place_changed', function() {
                fillInAddress();
            });
}

接下来,创建您的fillInAddress()功能,其外观如下所示。请参阅this reference link,以获取有关如何使用它的完整详细信息。

function fillInAddress() {
    /* Get the place details from the Autocomplete object. */
    /* The Autocomplete.getPlace() call retrieves a PlaceResult object */

    var place = autocomplete.getPlace();

    /* Use data from place.address_components[] according to your needs */
    /* For reference, use the link: */
    /* https://developers.google.com/maps/documentation/javascript/places#place_details_results */
}