自动完成中的变音符号

时间:2016-02-05 22:25:51

标签: javascript jquery google-maps autocomplete

我正在为波兰的房地产网站工作。

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

当我输入一些非重音城市名称时,一切正常,如“华沙”。

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

我一直在考虑如何在几个小时内解决这个问题,并且无法使其发挥作用。

我的网站在此处查看: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);
                    };

                });
            }

        });
    }

}

1 个答案:

答案 0 :(得分:0)

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

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

ajax_search.js?ver=4.4.1第227行

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

但你不能从div.where

的innerHtml中删除变音符号

您必须从两侧移除变音符号或保持原样。

相关问题