为了账号安全,请及时绑定邮箱和手机立即绑定

google placecomplete 插件不再允许选择地址

google placecomplete 插件不再允许选择地址

莫回无 2023-01-06 15:07:30

我一直在使用这个脚本:https ://github.com/stephjang/placecomplete多年,没有任何问题。今晚我收到很多投诉,用户无法从下拉菜单中选择地址。输入地址可以正常工作并且会显示结果,但是当尝试选择地址时,它不会执行任何操作。有谁知道谷歌阻止 placecomplete 请求是否发生了变化?


我的代码:


$inputLocationSearch.placecomplete({ 

        placeholderText: "Enter your site location...", 

        requestParams: {

            componentRestrictions: {country: ['ca','us']}

        } 

    });

问题的屏幕截图(鼠标或键盘无法选择找到的地址):

http://img1.sycdn.imooc.com/63b7c8d600010f1709690373.jpg

查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1468条经验 获得超7个赞

在插件jquery.placecomplete.js代码中发现了问题。将默认id参数替换为 use place_id,因为id谷歌自动完成已弃用。


我补充说: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);


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 10 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信