自动完成中的音调符号

Diacritics in autocomplete

本文关键字:符号      更新时间:2023-09-26

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

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

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

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

几个小时

以来,我一直在考虑如何解决这个问题,但无法使其工作。

我的网站在这里查看: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);
                    };
                });
            }
        });
    }
}
这不是

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

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

ajax_search.js?ver=4.4.1 227行

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

但是您不会从 div.where 的内部 HTML 中删除变音符号

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