タグ付けの目的で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。テキストだけでなく、テキストとカテゴリと照合したい。
それは可能ですか?