select2 поиск по двум свойствам
Я хочу добавить текстовое свойство в мои элементы данных 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 мог найти результат, если я наберу текст, который соответствует значению свойства description во входных данных.
Возможно ли это сделать?
Заранее спасибо.
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;
}