在我的视图中,我有一个带有 ajax 的 jquery 自动完成功能:
$('#QuickSearchProduct').autocomplete({
source: function (request, response) {
var term = request.term;
var url = url ? url : $(this.element).attr('data-autocomplete-url');
cache[url] = cache[url] || {};
if (term in cache[url]) {
response(cache[url][term]);
return;
}
var url = url ? url : $(this.element).attr('data-autocomplete-url');
lastXhr = $.getJSON(url, request, function (data, status, xhr) {
cache[url][term] = data;
if (xhr === lastXhr) {
response(data);
}
});
},
select: function (event, result) {
var callback_url = $(this).attr('data-callback-url');
console.log('url', callback_url);
var idContainer = result.item.id;
$.ajax({
url: callback_url,
dataType: 'json',
data: { idContainer: idContainer },
success: function (container) {
var newLine = BlankPriceListLine;
newLine.Barcode = container.Barcode;
newLine.IdContainer = container.IdContainer;
newLine.ContainerName = container.ContainerName;
newLine.SuggestedRP = container.SuggestedRP;
newLine.IdCurrency = container.IdCurrency;
newLine.IdTaxCode = container.IdTaxCode;
console.log('newLine', newLine);
vm.addLine(new MasterPriceListLines(newLine));
}
});
$(this).val('');
return false;
}
});
在代码中,自动完成是为了快速搜索产品,当在结果中选择项目时,然后使用方法 vm.addLine 将该项目添加到列表中,这是通过敲除 js 完成的。问题是我想禁用已经在列表中的结果,所以..我怎样才能在自动完成中禁用该结果?