Javascript 首次使用后如何触发Google Places自动完成结果下拉列表?
使用谷歌地图JavaScript API(通过Javascript 首次使用后如何触发Google Places自动完成结果下拉列表?,javascript,jquery,google-maps,google-places-api,googleplacesautocomplete,Javascript,Jquery,Google Maps,Google Places Api,Googleplacesautocomplete,使用谷歌地图JavaScript API(通过),我的地址输入 。。。当我键入“1251”时显示自动完成信息 。。。并在单击地址(或按enter键)时将完整地址添加到输入中: 当前,如果我再次单击地址输入(添加地址后),它只会将焦点添加到输入,而不会添加其他内容: 我的问题是:当单击已经自动完成的输入时,如何使用输入的数据再次触发下拉列表? 点击delete一次(只需将结尾从USA更改为US)即可重新打开下拉列表,但我不希望用户必须更改条目才能看到下拉列表。以下是我尝试过的: $('.g
),我的地址输入
。。。当我键入“1251”时显示自动完成信息
。。。并在单击地址(或按enter键)时将完整地址添加到输入中:
当前,如果我再次单击地址输入(添加地址后),它只会将焦点添加到输入,而不会添加其他内容:
我的问题是:当单击已经自动完成的输入时,如何使用输入的数据再次触发下拉列表?
点击delete一次(只需将结尾从USA
更改为US
)即可重新打开下拉列表,但我不希望用户必须更改条目才能看到下拉列表。以下是我尝试过的:
$('.geoloc输入')。打开({
//“更改位置”和“焦点”都不会触发下拉菜单(不起作用)
单击:函数(){
google.maps.event.trigger(这是“place_changed”);
//或
google.maps.event.trigger(这个'focus',{});
},
//输入从下拉列表中选择第一个地址(works)
向下键:功能(e){
如果(e.keyCode==13){
google.maps.event.trigger(这个'keydown',{keyCode:40});
google.maps.event.trigger(这个'keydown',{keyCode:13});
这个。blur();
}
}
});
使用字段值以编程方式触发下拉列表的正确方法是什么?我想我知道您想要实现什么。您希望保留文本字段的状态,以便在恢复焦点时,它可以恢复到原来的位置。你喜欢这个工作吗
var input=document.getElementById('searchTextField');
var autocomplete=new google.maps.places.autocomplete(输入);
addEventListener('input',function(){
this.dataset.originalVal=this.value;
});
input.addEventListener('focus',函数(){
this.value=input.dataset.originalVal?input.dataset.originalVal:this.value;
});代码>
输入{
宽度:300px;
}
接受的答案不适合我,但另一个答案:
TL;DR,延迟后调用输入的.focus()
。“…重新打开下拉列表,但这不是我想要的。”然后你想要什么?当你第二次触发焦点时,你希望在下拉列表中看到什么值?你是对的,我不清楚这一点。。。将其编辑为“我不希望用户必须更改条目才能看到下拉列表”,这是否回答了您的问题?