【发布时间】:2019-06-01 13:50:35
【问题描述】:
我的输入中有自动完成城市的代码。
google.maps.event.addDomListener(window, 'load', function () {
let input = document.getElementById('where-input');
let autocomplete = new google.maps.places.Autocomplete(input, {types: ['(cities)']});
});
我只想允许来自谷歌地图自动完成的值,否则发送明确的输入。你能帮助我吗?谢谢
编辑: 我找到了这个解决方案,但它不适用于提交,只能用于输入,你能帮我吗?
$(function () {
var pac_input = document.getElementById('where-input');
(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==="submit") {
console.log("ghfj");
}
if (type == "keydown") {
var orig_listener = listener;
listener = function (event) {
var suggestion_selected = $(".pac-item-selected").length > 0;
if (event.which == 13 && !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, {types: ['(cities)']});
})(pac_input);
});
【问题讨论】:
标签: javascript api google-maps autocomplete google-api