【问题标题】:Diacritics in autocomplete自动完成中的变音符号
【发布时间】:2016-05-16 01:07:58
【问题描述】:

我正在为波兰开发房地产网站。

我有一个带有自动完成功能的搜索部分,当用户停止输入时会刷新搜索结果。

当我输入一些不带口音的城市名称时,一切正常,例如“Warszawa”。

问题是,当我输入带有重音的单词时,例如“Kraków”。自动完成会在地图上找到标记,直到我不输入字母“ó”。当我输入一个没有重音的单词时 - “克拉科夫”,脚本仍然无法在地图上找到标记。

这几个小时我一直在思考如何解决这个问题,但无法解决。

我的网站在这里:http://ultimate.houser.pl/nieruchomosci/

我的代码是:

function getPredictions(request, response){

    tmpList = [];

    if (typeof $.goMap.map === 'object') {

        $.goMap.predictions.getQueryPredictions({ input: 'Polska, ' + request.term }, function(predictions, status){

            for ( i = 0; i < predictions.length; i++) {

                place_req = {
                    placeId: predictions[i].place_id
                };

                $.goMap.places.getDetails( place_req, function(place, status){

                    miasto='', woj='', ulica='';

                    for ( i = 0; i < place.address_components.length; i++) {
                      addressType = place.address_components[i].types[0];

                      if (addressType == 'administrative_area_level_1') {
                        woj = ', ' + place.address_components[i].long_name;
                      };
                      if (addressType == 'locality') {
                        miasto = '' + place.address_components[i].long_name;
                      };
                      if (addressType == 'route') {
                        ulica = ', ' + place.address_components[i].long_name;
                      };
                    }
                    // val = miasto + woj + ulica;
                    if (woj != '') {
                        val = miasto + woj;
                    };

                    if ( tmpList.indexOf(val) < 0 && val.length > 0) {
                        val = val.replace(/województwo/i,'').trim();
                        // val.replace(',','');
                        tmpList.push(val);
                        response(tmpList);
                    };

                });
            }

        });
    }

}

【问题讨论】:

  • 您是否尝试过对查询进行 URL 编码?不过,我不确定这是否可行。当我尝试输入 Krakow 和 Kraków 时,官方文档中的 autocomplete example 似乎可以使用特殊字符,我认为您可以查看这些并检查您是否错过了任何内容

标签: javascript jquery google-maps autocomplete


【解决方案1】:

这不是自动完成的问题(它会返回结果,否则您不会在下拉列表中看到任何内容)。

问题:当您根据input#search-where 的值测试标记列表(div.where)时,您会从输入值中删除变音符号

ajax_search.js?ver=4.4.1227行

    where = removeDiacritics( $("#search-where").val() );

但你不会从div.where的innerHtml中删除变音符号

您必须删除两边的变音符号或保持原样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-18
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多