YYlxid
YYlxid
2014-12-11 02:45

jQuery autocomplete 输入一个字符会显示所有数据,输入两个字符后进行过滤

15
  • autocomplete
  • jquery

输入第一个字符 匹配的会加粗,但是不匹配的也会显示
输入第二个字符后,不匹配的才会被过滤

使用的是jquery.autocomplete.js
使用 外部json数据

$("#Test").autocomplete("json/test.json", {

width:150,

max:10,

dataType: 'json',
minChars: 1, //自动完成激活之前填入的最小字符
autoFill: false, //自动填充
minLengthType:2,
//加入对返回的json对象进行解析函数,函数返回一个数组

parse:function(data){
var rows=[];
for(var i=0;i<data.length;i++){
rows[rows.length]= {
data:data[i].label,
value:data[i].label,
result:data[i].label
};
}
for(var i=0;i<data.length;i++){
//alert(rows[i].data);
}
return rows;
},
formatItem:function(row,i,n){
alert("yes"+row+i);
return row;
},
formatMatch: function(data, i, total) {
//alert("yes"+data);
return data;
},formatResult: function(row){
// alert("yes"+row);
return row;//要显示在文本框的子字段;

}

});

数据
[
{"label" : "Aragorn"},
{"label" : "Arwen"},
{"label" : "Bilbo Baggins"},
{"label" : "Boromir"},
{"label" : "Frodo Baggins"},
{"label" : "Gandalf"},
{"label" : "Gimli"},
{"label" : "Gollum"},
{"label" : "Legolas"},
{"label" : "Meriadoc Merry Brandybuck"},
{"label" : "Peregrin Pippin Took"},
{"label" : "Samwise Gamgee"}
]

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

4条回答

为你推荐

换一换