【问题标题】:Google Places API InvalidValueError: not an instance of HTMLInputElementGoogle Places API InvalidValueError:不是 HTMLInputElement 的实例
【发布时间】:2017-03-09 12:12:48
【问题描述】:

有一个包含此元素的 HTML 表单:

var control = container.getElementById('AutoComplete');
var input = /** @type {!HTMLInputElement} */ (control);
console.log("input: ", input); //Output: <input type=​"text" id=​"AutoComplete" placeholder=​"--" class=​"block_input" autocomplete=​"off">​
autocomplete = new google.maps.places.Autocomplete(input, {
  types: ['geocode']
});
<html>
<div id="input_address">
  <div class="element">
    <label class="block_label">Адрес</label>
  </div>
  <div class="element">
    <input type="text" id="AutoComplete" placeholder="--" class="block_input"></input>
  </div>
</div>

</html>

我有一个错误:

不是 HTMLInputElement 的实例

我该如何解决这个问题?

【问题讨论】:

  • 谷歌地图自动完成现在只支持 window.HTMLInputElement
  • new google.maps.places.Autocomplete 是异步的。调用构造函数后输入不是被销毁/删除/移除了吗?

标签: javascript html google-places-api


【解决方案1】:

我遇到了同样的问题,这个方法有效。

 let searchInputField = document.getElementsByClassName('search-form')[0].getElementsByTagName('input')[0];
 let autocomplete = new google.maps.places.Autocomplete(searchInputField);

【讨论】:

    【解决方案2】:

    只需像这样添加带有 id 自动完成功能的隐藏输入,即可将其从控制台中删除
    &lt;input id="autocomplete" type="hidden"&gt;

    【讨论】:

      猜你喜欢
      • 2017-11-25
      • 2016-03-07
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 2019-07-17
      相关资源
      最近更新 更多