我正在使用jQuery自动完成功能,允许用户在填写表单时搜索并选择多个项目。选择项目后,用户可以从所选项目列表中删除该项目。
我希望能够做的是隐藏未来搜索中的所选项目,并在将来的搜索中显示项目,如果项目被移除:
这是我目前的剧本:
var commissioner = [];
$.getJSON('/Commissioner/AutocompleteSearch')
.done(function (data) {
commissioner = data;
$('#commissioner').autocomplete({
minLength: 3,
source: function (request, response) {
var results = $.ui.autocomplete.filter(commissioner, request.term);
response(results.slice(0, 10));
},
select: function (event, ui) {
$(this).val('');
var li = '<li>';
li += '<input type="hidden" name="CommissionerId" value="' + ui.item.id + '" />'
li += ui.item.label + '<span class="delete">Delete</span>';
li += '</li>';
$('#selectedCommissioners').append(li);
$('#selectedCommissioners li.none').hide();
return false;
}
})
});
$('#selectedCommissioners').on('click', '.delete', function () {
var $el = $(this).parent();
$el.remove();
if ($('#selectedCommissioners li').length == 1) {
$('#selectedCommissioners li.none').show();
}
});
答案 0 :(得分:0)
在源函数中,您应该在结果集上运行另一个filter
,删除您选择中已有的结果。因此,您可能希望以结果集中获得的格式保留所选值的集合,使它们与1:1具有可比性