在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插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...