如何删除jQuery多个自动完成列表中已选择的值?
例如,如果我选择了word A
,则下次键入时不应出现在列表中。另外,如果有人尝试使用Backspace键删除该元素,则该元素应重新出现在自动完成列表中。
$(function() {
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
$("#birds").on("keydown", function(event) {
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).autocomplete("instance").menu.active) {
event.preventDefault();
}
}).autocomplete({
source: function(request, response) {
$.getJSON("search.php", {
term: extractLast(request.term)
}, response);
},
select: function(event, ui) {
var terms = split(this.value);
terms.pop();
terms.push(ui.item.value);
terms.push("");
this.value = terms.join(", ");
return false;
}
});
});
如果您存储id
和文本也可能会更好,为什么当您发出ajax
请求将它们传递并在服务器端处理它们时,也为什么不存储]。>
some_array = array();
$('[your-list]').keyup(function(e) {
var text = $(this).text();
// key backspace is released
if(e.keyCode == 8)
some_array.push(text);
});
好,所以我已经制作了此代码段,它应该可以根据您的需要工作。我已经从jquery ui autocomplete site
也许这可以满足您的要求: