我正在使用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);
答案 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"与"目的地"