Google自动填充HTMLInputElement错误

时间:2015-12-17 14:38:20

标签: javascript google-api

我正在使用Google自动填充功能并收到此错误

InvalidValueError: not an instance of HTMLInputElement

我认为谷歌已经将getElementById用于掠夺

var input = /** @type {!HTMLInputElement} */(
  document.getElementById('pac-input'));

但我不确定它的使用方法。我的代码在下面

var options ={
    types:['(cities)'],
};

var input = document.getElementById('destination');
var autocomplete = new google.maps.places.Autocomplete(input, options);
}

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

5 个答案:

答案 0 :(得分:1)

使用onFocus="functionName()"在输入标记上调用google.maps.autocomplete

答案 1 :(得分:0)

我也遇到了这个问题,用这个就可以了

  let searchInputField = document.getElementsByClassName('search-form')[0].getElementsByTagName('input')[0]

  let autocomplete = new google.maps.places.Autocomplete(searchInputField);

答案 2 :(得分:0)

当你得到元素时,它返回一个数组,所以:

    const memberPlace = $("#place");
    const memberAddress = $("#address");
    const options = {
        fields: ["address_components", "geometry", "icon", "name"],
        strictBounds: false,
        types: ["establishment"],
    };

    if (memberPlace.length) {
        new google.maps.places.Autocomplete(memberPlace[0], options);
    }

    if (memberAddress.length) {
        new google.maps.places.Autocomplete(memberAddress[0], options);
    }

答案 3 :(得分:-1)

检查你的函数是否在$(document).ready函数中,或者你的document.getElementById不会被js找到(因为它试图在文档出现之前找到它)

答案 4 :(得分:-2)

这是因为你覆盖了你的输入变量。如果你只使用var input = / ** @type {!HTMLInputElement} * /(   的document.getElementById(' PAC-输入'));或替换" pac-input"与"目的地"