タグ付けの目的でSelect2を使用します。チャームのように機能しますが、追加の要件があります。マッチャーは、アイテムのテキストだけでなく、それ以上に一致する必要があります。
説明させてください。このmatcher
関数は、2つのパラメーターとを取りterm
ますtext
。これにより、指定されたタグと入力されたテキストを比較できます。tags
しかし、(関数を介して)各タグに追加のデータを定義すると、マッチャーでそのデータにアクセスできなくなります。
コード例:
// #myinput is a hidden input field
$('#myinput').select2({
matcher: function(term, text) {
return text.toUpperCase().indexOf(term.toUpperCase()) >= 0;
},
tags: function() {
var tags = [];
$('#myselect').find('option').each(function(index, option) {
option = $(option);
tags.push({
id: option.val(),
text: option.text(),
category: option.data('category')
});
});
return tags;
}
})
各タグの必須プロパティid
とプロパティを設定します。text
さらに、という名前の文字列がありますcategory
。テキストだけでなく、テキストとカテゴリと照合したい。
それは可能ですか?