select2 搜索两个属性

select2 search on two properties

我想在我的 select2 数据项中添加文本 属性 并能够搜索它。

例如我有这个数据:

var data : 
[
    { id : 1, text : 'Item 1', description : 'Long text description for item 1' },
    { id : 2, text : 'Item 2', description : 'Long text description for item 2' },
    { id : 3, text : 'Item 3', description : 'Long text description for item 3' },
]

如果我在输入中键入与描述 属性 值匹配的文本,我希望 select2 能够找到结果。

可以吗?

提前致谢。

解决方案是创建自定义匹配器并像这样使用它

$('.select2-typeahead').select2
({
    data : 
    [
        { id : 1, text : 'Item 1', description : 'Long text description for item 1' },
        { id : 2, text : 'Item 2', description : 'Long text description for item 2' },
        { id : 3, text : 'Item 3', description : 'Long text description for item 3' },
    ],
    matcher : function(params, data, item)
    {
        if ($.trim(params) === '') 
        {
            return data;
        }

        if(data.toLowerCase().indexOf(params.toLowerCase()) > -1 || item.description.toLowerCase().indexOf(params.toLowerCase()) > -1)
        {
            return data;
        }

        return null;
    }