我希望仅在为用户选择其中一个下拉选项时,才能从我的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);
答案 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 */
}