我在文本输入上使用自动完成小部件( #MapSearchName )。源是一个简单的字符串数组( MapListNames )。我需要在显示自动填充结果之前修改搜索字词。
在我的情况下, MapListNames 数组内容字符串为西里尔字母,当用户使用西里尔语进行搜索时,它会起作用。当用户在拉丁语中搜索时,我希望自动填充建议搜索结果。我写了一个 Met2Kir() 函数,它将拉丁字符串转换为西里尔字符串。
我发现这应该通过使用请求/响应函数来完成,但在自动完成文档中没有特别清楚地描述,我无法猜测应该采用哪种方法。
这是我的代码:
$( "#MapSearchName" ).autocomplete({
// source: MapListNames,
delay: 0,
autoFocus: true,
source: function( request, response ) {
var term = Met2Kir(request.term);
response( MapListNames, function( item ){
return term;
} );
}
});
我需要一些来源部分的帮助,以便在发送用于搜索之前,Met2Kir()函数处理任何用户输入。
整个情况可以在这里找到:Lyaskovets Citymap(它是保加利亚语,但 #MapSearchName 就在地图下方)< / p>
JS代码位于citymap.js file
的末尾答案 0 :(得分:1)
这可以通过将结果过滤到新阵列并将其发送回response()
来完成。例如:
$("#MapSearchName").autocomplete({
delay: 0,
autoFocus: true,
source: function( request, response ) {
var term = Met2Kir(request.term);
var results = $.ui.autocomplete.filter(MapListNames, term);
response(results);
}
});