在jQuery自动完成中从数组中删除所选项

Jet*_*oox 6 jquery

我有这个阵列,

var metrics = [
        {
            value: "1",
            label: "Sold Listings",
            desc: "sold_listings"
        },
        {
            value: "10",
            label: "New Pendings",
            desc: "new_pendings"
        },
        {
            value: "4",
            label: "All Pendings",
            desc: "all_pendings"
        },
        {
            value: "2",
            label: "New Listings",
            desc: "new_listings"
        },
        {
            value: "3",
            label: "Active Listings",
            desc: "active_listings"
        }
    ];
Run Code Online (Sandbox Code Playgroud)

我想要做的是选择项目,例如我将选择活动列表,这个项目应该从数组中删除.因此,当自动完成再次呈现时,它将不会显示所选项目.

//My Idea of removing the item
            $.each(metrics,function(i,val){
                if(val.value == ui.item.value){
                    delete metrics[i];
                }
            });
Run Code Online (Sandbox Code Playgroud)

Ric*_*ann 6

问题是你没有更新源代码autocomplete.
要做到这一点,你必须使用以下行.

$('.yourAutocomplete').autocomplete('option', 'source', yourArray);

因此,在自动完成选择事件上:

假设那#autocomplete是你的input.

select: function(e, ui) {
    metrics = jQuery.grep(metrics, function(element) {
        return element.value != ui.item.value;
    });
    $('#autocomplete').autocomplete('option', 'source', metrics)
    return false;
}
Run Code Online (Sandbox Code Playgroud)

演示

参考: