【发布时间】:2018-05-08 19:31:56
【问题描述】:
所以我使用 google maps api 在后端填写一些信息,但如果用户没有“点击”下拉选项,则后端永远不会填充数据。
我在这里找到了堆栈溢出的解决方法:link,但在模糊/聚焦时没有任何反应。
let address = document.getElementById('inputAddress');
(function pacSelectFirst(input) {
// store the original event binding function
var _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent;
function addEventListenerWrapper(type, listener) {
// Simulate a 'down arrow' keypress on hitting 'return' when no pac suggestion is selected,
// and then trigger the original listener.
if (type == "keydown" || type == 'blur') {
var orig_listener = listener;
listener = function(event) {
var suggestion_selected = $(".pac-item-selected").length > 0;
// if [enter] or [tab] is pressed
if ((event.which == 13 || event.which == 9) && !suggestion_selected) {
var simulated_downarrow = $.Event("keydown", {
keyCode: 40,
which: 40
});
orig_listener.apply(input, [simulated_downarrow]);
}
orig_listener.apply(input, [event]);
};
}
_addEventListener.apply(input, [type, listener]);
}
input.addEventListener = addEventListenerWrapper;
input.attachEvent = addEventListenerWrapper;
var autocomplete = new google.maps.places.Autocomplete(input);
})(address);
我了解代码在做什么。当您单击 tab 或 enter 时,它会模拟向下箭头键。我尝试添加一个监听器以进行模糊,但没有任何效果。该事件仍会被触发,但不会选择或更新。
希望对这种情况有所帮助。谢谢!
【问题讨论】:
标签: javascript google-maps google-maps-api-3