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;
}
我想在我的 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;
}