ist Ihr Ansatz richtig. Sie müssen das ausgewählte Element aus availableTags
entfernen und autocomplete
erneut initialisieren. grep
ist eine Filterfunktion, welche Elemente in der Anordnung auf der Grundlage Ihrer Bedingungen zurück
hier lesen: http://api.jquery.com/jquery.grep/
so können Sie dies
availableTags = jQuery.grep(availableTags, function(element) {
return element.value != ui.item.value;
});
, die aus dem ausgewählten Element availableTags
wird entfernen
var availableTags = [
{
id:1,
value:"php"
},
{
id:2,
value:"java"
},
{
id:3,
value:"Asp.net"
}
]
function triggerAutoComplete() {
$("#js-news-categories").autocomplete({
minLength: 0,
source: availableTags,
multiselect: true,
autoFocus: true,
focus: function(event, ui) {
return false;
},
select: function(event, ui) {
availableTags = jQuery.grep(availableTags, function(element) {
return element.value != ui.item.value;
});
triggerAutoComplete();
$("#js-news-categories").val("");
var catItems = '<span class="c_item" id="c_item_'+ ui.item.id +'"> <input type="hidden" value="'+ ui.item.id +'"/>'+ ui.item.value +'<span class="close">X</span></span>';
$(".js-categories_select").append(catItems);
return false;
}
});
}
triggerAutoComplete();
Geige: http://jsfiddle.net/tintucraju/Ex3Rp/23/
aktualisieren
Wie pro Ihren Kommentar können Sie eine zusätzliche Funktion triggerAutoComplete()
durch Ändern der Quelle auf eine Funktion vermeiden verwenden. Lesen Dokumentation: http://api.jqueryui.com/autocomplete/#option-source
source:function(request,response){
response(availableTags);
},
Aktualisiert Fiddle: http://jsfiddle.net/tintucraju/aecfhxxp/1/
Hallo, ohne die Funktion triggerAutoComplete() verwendet, wie kann ich dies umsetzen? – prinz
@prinz Bitte überprüfen Sie meine Aktualisierung. –
Danke Tintu – prinz