Я использую последнюю версию 4.0.12 скрипта Select2.
Мой выпадающий список выглядит так:
<select id="langselect">
<option data-lang="Английский">English</option>
<option data-lang="Русский">Russian</option>
</select>
Я использую
matcher
для поиска по первой букве:
function matchStart(term, text) {
if (text.toUpperCase().indexOf(term.toUpperCase()) == 0) {
return true;
}
return false;
}
$.fn.select2.amd.require(['select2/compat/matcher'], function(oldMatcher) {
$("#langselect").select2({
matcher: oldMatcher(matchStart),
});
});
Мне нужно изменить функцию
matchStart()
чтобы можно было искать также по data-* атрибутам. Я пытаюсь писать код типа такого:
if ($(data.element).data('lang').toUpperCase().indexOf(term.toUpperCase()) == 0) {
return true;
}
Но вылазит ошибка
Cannot read property 'indexOf' of undefined
, toString() не помогает. Полагаю, код должен выглядеть по-другому, но не знаю как. Помогите исправить ошибку.