链接到小提琴:http://jsfiddle.net/nEapJ/(工作)
var items = [{
label : 'a',
value : 'a',
},{
label : 'b',
value : 'b',
},{
label : 'c',
value : 'c',
}];
$('input').autocomplete({
source : items
});
此代码有效,但是当我想通过回调函数设置源代码时 然后 它无法正常工作
链接到小提琴:http://jsfiddle.net/B3RWj/(不工作)
$('input').autocomplete({
source : function(request, response){
response(items);
}
});
当我输入时,' a'然后它给出a,b,c作为结果。
那么,我错过了什么?
提前谢谢。
答案 0 :(得分:2)
在回调函数中,您可以自行进行过滤..
第三种变体,即回调,提供了最大的灵活性 可用于将任何数据源连接到自动完成。回调 有两个参数:
一个请求对象,其中引用了一个名为“term”的属性 到文本输入中当前的值。例如,当用户 在城市字段中输入“new yo”,自动填充术语将相等 “新哟”。一个响应回调,它需要一个参数 包含要向用户建议的数据。 应过滤此数据 基于提供的术语,可以采用任何描述的格式 上面是简单的本地数据(String-Array或Object-Array with 标签/价值/两个属性)。提供自定义时很重要 源回调以在请求期间处理错误。你必须永远 即使遇到错误也会调用响应回调。这个 确保窗口小部件始终具有正确的状态。
答案 1 :(得分:1)
见代码:
$('input').autocomplete({
source : function(request, response){
var term = request.term;
var result = [];
//make your code here to filter the item by term.
//put them into the result array such as.
response(result);//this will show in the selection box.
}
});
答案 2 :(得分:0)
如果要使用回调函数而不是源数组或字符串,则必须添加
response($.ui.autocomplete.filter(items, request.term));
在你的函数中:
source : function(request, response){}
当您将源定义为数组或字符串时,这就是自动完成功能,但对于回调,您必须添加它。