select2搜索两个属性

时间:2016-09-20 08:25:20

标签: javascript search select2

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

例如,我有这些数据:

org.eclipse.wb.internal.core.utils.check.AssertionFailedException: Execution flow problem. newinvoicescreen.add(quantitylbl);
 expected, but paymentscreen.add(amountlbl);

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

有可能吗?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

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

$('.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;
    }