以下是我的自动填充功能的代码。问题是它主要是有效。假设我有一堆结果,如test1,test2,test3等。如果我输入“t”它们会弹出,当我把e放入“te”时它们会消失。然后,如果我放入“s”,它会进一步缩小它。它也不总是第二个字母。它似乎是零星的。请帮忙。我已经确认回来的数据是可靠的,所以后端没什么。
//Server autocomplete
$("#txtSearchServer").keyup(function (event) {
$.ajax({
url: 'edit/EditService.svc/SearchServers',
type: 'GET',
data: { 'term': $("#txtSearchServer").val() },
dataType: 'json',
success: function (data) {
var listServers = [];
$.map(data.d, function (item) {
///working here to do server autocomplete!!!!!!!
listServers.push(item.ServerName);
$("#txtSearchServer").autocomplete({
source: listServers
});
});
},
error: function (a, b, c) {
$('.Toast').html('Error Retreiving Servers for autocomplete!');
}
});
});
答案 0 :(得分:1)
查看您正在执行asp.net的代码
这应该适合你:
function AutocompleteJSONParse(data) {
var rows = new Array();
var rowData = null;
for (var i = 0, dataLength = data.length; i < dataLength; i++) {
rowData = data[i];
rows[i] = {
value: rowData.ServerName,
label: rowData.ServerName
};
}
return rows;
};
$("#txtSearchServer").autocomplete({
source: function(request, response) {
var pString = '{"term":"' + request.term + '"}';
$.ajax({
url: 'edit/EditService.svc/SearchServers',
type: 'GET',
dataType: "jsond",
type: "POST",
contentType: "application/json",
converters: {
"json jsond": function(msg) {
return msg.hasOwnProperty('d') ? msg.d : msg;
}
},
data: pString,
success: function(data) {
var rows = AutocompleteJSONParse(data);
response(rows);
}
});
},
error: function(a, b, c) {
$('.Toast').html('Error Retreiving Servers for autocomplete!');
},
minLength: 2,
delay: 1000
});
答案 1 :(得分:0)
答案是:https://gist.github.com/1140631应该解决它。
编辑:我想知道你为什么动态预取结果,你不能马上获得完整列表吗?或者它是否有大量数据?