You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为新版PlacesAutocompleteElement添加占位文本?

新版Google Places Autocomplete设置占位文本的解决方法

旧版Google Places Autocomplete API直接使用<input>标签,只需添加placeholder="Search"就能设置占位文本。但新版要求通过JavaScript创建<gmp-place-autocomplete>元素并插入到HTML div中,常规方法无法设置占位文本。

文档给出的示例代码:

const placeAutocomplete = new google.maps.places.PlaceAutocompleteElement();
const ACDiv = document.getElementById("search-field")
ACDiv.appendChild(placeAutocomplete);
placeAutocomplete.id = "place-autocomplete-input";

已尝试过的无效方法:

  • placeAutocomplete.placeholder = "Search"
  • placeAutocomplete.createPlaceholder("Search")
  • document.getElementById("place-autocomplete-input").placeholder = "Search"

可行的解决方式

1. 实例化时传入配置参数

在创建PlaceAutocompleteElement实例时,直接在构造函数的配置对象中指定占位文本:

const placeAutocomplete = new google.maps.places.PlaceAutocompleteElement({
  placeholder: "Search"
});
const ACDiv = document.getElementById("search-field")
ACDiv.appendChild(placeAutocomplete);
placeAutocomplete.id = "place-autocomplete-input";

2. 用setAttribute动态设置

如果已经创建了元素实例,可通过setAttribute方法为自定义元素添加占位文本属性:

const placeAutocomplete = new google.maps.places.PlaceAutocompleteElement();
const ACDiv = document.getElementById("search-field")
ACDiv.appendChild(placeAutocomplete);
placeAutocomplete.id = "place-autocomplete-input";
// 添加这一行设置占位文本
placeAutocomplete.setAttribute('placeholder', 'Search');

3. 直接在HTML中声明元素并设置属性

也可以跳过JS创建,直接在HTML中定义<gmp-place-autocomplete>并设置占位属性,后续再通过JS获取实例:

<div id="search-field">
  <gmp-place-autocomplete id="place-autocomplete-input" placeholder="Search"></gmp-place-autocomplete>
</div>

说明

<gmp-place-autocomplete>是Google提供的自定义Web Component,不属于原生<input>元素,直接赋值placeholder属性不会触发内部逻辑,必须通过构造配置或setAttribute的方式来设置。

内容的提问来源于stack exchange,提问作者MeganM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:37:05