我正在尝试将Select2与文字的不同属性名称一起使用。我有一组具有名称属性的对象。我试图直接在select2中使用该对象,如下所示
HTML
<div id="container">
<input type="hidden" id="selectElement"/>
</div>
的Javascript
function format(item) {
return item.name;
};
$("#selectElement").select2({
placeholder: 'Select ...',
data: [{id:0, name: "Home"},{id:1, name: "About Us"},{id:2, name: "Reach Us"}],
formatResult: format,
formatSelection: format,
});
如此Fiddle所示,选项会正确填充。但是当我们输入一些匹配任何现有选项的文本时,select2会显示找不到匹配,尽管有匹配。
我在这里缺少什么,导致默认匹配不起作用?
答案 0 :(得分:2)
您似乎还需要重新定义matcher
功能:
$("#selectElement").select2({
placeholder: 'Select ...',
data: [{id:0, name: "Home"},{id:1, name: "About Us"},{id:2, name: "Reach Us"}],
formatResult: format,
formatSelection: format,
matcher: function(term, text, option) {
return option.name.toUpperCase().indexOf(term.toUpperCase())>=0;
}
});