我在文本输入上使用自动完成小部件 (#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;
} );
}
});
我需要一些有关 source: 部分的帮助,以便任何用户输入在发送进行搜索之前都由 Met2Kir() 函数进行处理。
整个情况可以在这里找到:Lyaskovets Citymap (它是保加利亚语,但#MapSearchName位于 map 正下方)
JS代码在citymap.js file末尾
最佳答案
这可以通过将结果过滤到新数组并将其发送回 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);
}
});
关于javascript - jQuery UI 自动完成小部件 : Edit search term before perform search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43102916/