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

前端之家收集整理的这篇文章主要介绍了在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"
        }
    ];

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

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

解决方法

问题是您没有更新自动完成源.
要做到这一点,你必须使用以下行.

$(‘.yourAutocomplete’).autocomplete(‘option’,’source’,yourArray);

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

假设#autocomplete是您的输入.

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

demo

参考:

> http://jqueryui.com/demos/autocomplete/#method-option

猜你在找的jQuery相关文章