Làm cách nào bạn có thể đặt giới hạn cho kết quả từ tự động hoàn thành jQuery?Giới hạn kết quả trong jQuery Tự động hoàn thành
Đây là mã của tôi:
$.ajax({
url: "/cache/search/SearchModels.xml",
dataType: "xml",
success: function(xmlResponse) {
var data = $("SearchModel", xmlResponse).map(function() {
return {
value: $("Name", this).text() + ", " + $("Description", this).text(),
id: $("No", this).text(),
name: $("Name", this).text(),
url: $("URL", this).text()
};
}).get();
$("#txtTopSearch").autocomplete({
source: data,
minLength: 2,
select: function(event, ui) {
BlockUI();
if (typeof (ui.item.url) != 'undefined') {
window.location = ui.item.url;
}
else {
alert('Page not found!');
$.unblockUI();
}
},
search: function(event, ui) {
$('#txtTopSearch').addClass('searchInProgress');
},
close: function(event, ui) {
$('#txtTopSearch').removeClass('searchInProgress');
}
}).data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a><span style='font-size:.9em; font-weight:bold;'>" + item.id + "</span><br /><span style='font-size:.8em;'>" + item.name + "</span></a>")
.appendTo(ul);
};
},
error: function(xhr, textStatus, errorThrown) {
alert('Error: ' + xhr.statusText);
}
});
này mã trở lại tất cả các kết quả trong truy vấn, nhưng tôi muốn giới hạn này để chỉ hiển thị 10 kết quả. Trong phiên bản tự động hoàn thành cũ có một tùy chọn cho điều này, nhưng nó bây giờ không được chấp nhận.
Ví dụ về XML:
<?xml version="1.0"?>
<ArrayOfSearchModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SearchModel>
<No>1</No>
<Name>My product</Name>
<Description>My description</Description>
<Tags>blue;brown;</Tags>
<URL>/Products/1</URL>
</SearchModel>
</ArrayOfSearchModel>
Đề xuất đầy hứa hẹn, nhưng nó không hoạt động. Nó không giống như 'SearchModel' là một bộ chọn thông thường. – Martin
@Martin, tôi cho rằng đó là một thẻ được sử dụng bên trong xml. Bạn có thể đăng một số nội dung từ tệp XML không? tôi sẽ đăng một giải pháp thay thế bằng cách sử dụng phương thức 'map' –
Cảm ơn bạn, tôi đã cập nhật câu hỏi của mình với ví dụ về một nút. – Martin