google placecomplete 插件不再允许 select 地址
google placecomplete plugin does not allow to select an address anymore
我一直在使用此脚本:https://github.com/stephjang/placecomplete 多年,没有任何问题。今晚我收到很多投诉,说用户无法从下拉菜单中 select 地址。输入地址可以正常工作并显示结果,但是当尝试 select 地址时,它不会执行任何操作。有谁知道 google 阻止 placecomplete 请求是否发生了变化?
我的代码:
$inputLocationSearch.placecomplete({
placeholderText: "Enter your site location...",
requestParams: {
componentRestrictions: {country: ['ca','us']}
}
});
问题的屏幕截图(鼠标或键盘无法 select 找到地址):
在插件 jquery.placecomplete.js
代码中发现问题。将默认 id
参数替换为使用 place_id
,因为 id
已弃用 google 自动完成。
我在现有代码上方添加:apr["id"] = apr["place_id"];
:apr["text"] = apr["description"];
这是添加的整个代码块:
var select2options = $.extend({}, {
query: function(query) {
GooglePlacesAPI.getPredictions(query.term, requestParams)
.done(function(aprs) {
var results = $.map(aprs, function(apr) {
// Select2 needs a "text" and "id" property set
// for each autocomplete list item. "id" is
// already defined on the apr object
apr["id"] = apr["place_id"];
apr["text"] = apr["description"];
return apr;
});
query.callback({results: results});
})
.fail(function(errorMsg) {
$el.trigger(pluginName + ":error", errorMsg);
query.callback({results: []});
});
},
initSelection: function(element, callback) {
// initSelection() was triggered by value being defined directly
// in the input element HTML
var initText = $el.val();
// The id doesn't matter here since we're just trying to prefill
// the input with text for the user to see.
callback({id: 0, text: initText});
},
minimumInputLength: 1,
selectOnBlur: true,
allowClear: true,
multiple: false,
dropdownCssClass: "jquery-placecomplete-google-attribution",
placeholder: this.options.placeholderText
}, this.options);
我一直在使用此脚本:https://github.com/stephjang/placecomplete 多年,没有任何问题。今晚我收到很多投诉,说用户无法从下拉菜单中 select 地址。输入地址可以正常工作并显示结果,但是当尝试 select 地址时,它不会执行任何操作。有谁知道 google 阻止 placecomplete 请求是否发生了变化?
我的代码:
$inputLocationSearch.placecomplete({
placeholderText: "Enter your site location...",
requestParams: {
componentRestrictions: {country: ['ca','us']}
}
});
问题的屏幕截图(鼠标或键盘无法 select 找到地址):
在插件 jquery.placecomplete.js
代码中发现问题。将默认 id
参数替换为使用 place_id
,因为 id
已弃用 google 自动完成。
我在现有代码上方添加:apr["id"] = apr["place_id"];
:apr["text"] = apr["description"];
这是添加的整个代码块:
var select2options = $.extend({}, {
query: function(query) {
GooglePlacesAPI.getPredictions(query.term, requestParams)
.done(function(aprs) {
var results = $.map(aprs, function(apr) {
// Select2 needs a "text" and "id" property set
// for each autocomplete list item. "id" is
// already defined on the apr object
apr["id"] = apr["place_id"];
apr["text"] = apr["description"];
return apr;
});
query.callback({results: results});
})
.fail(function(errorMsg) {
$el.trigger(pluginName + ":error", errorMsg);
query.callback({results: []});
});
},
initSelection: function(element, callback) {
// initSelection() was triggered by value being defined directly
// in the input element HTML
var initText = $el.val();
// The id doesn't matter here since we're just trying to prefill
// the input with text for the user to see.
callback({id: 0, text: initText});
},
minimumInputLength: 1,
selectOnBlur: true,
allowClear: true,
multiple: false,
dropdownCssClass: "jquery-placecomplete-google-attribution",
placeholder: this.options.placeholderText
}, this.options);