我刚刚开始使用select2,当我使用以下两个字段填充选项时工作正常:
function formatemp(item) { return item.empnum + " : " + item.empname; }
$("#empsDropDown").select2({
data:{ results: <?PHP echo json_encode($employees);?>, text: 'empname'},
placeholder: " <?PHP echo lang("All");?> ",
minimumInputLength: 2,
allowClear: true,
id: function(obj) {return obj.empnum; },
formatResult: formatemp,
formatSelection: formatemp
});
以
格式显示001:Bloggs
搜索使用
text: 'empname'
位。所以它只搜索名称。如果您在搜索框中输入“B”,它将过滤并查找Bloggs等。但是,如果您在搜索框中输入“0”,则不会返回任何结果。
无论如何都要让它搜索两个字段(empname和empnum)?
我是select2的新手,所以我希望这是一个显而易见的事情,我还没有尝试过。
我试过了
text: 'empname' + 'empnum'
和text: 'empname', text: 'empnum'
除此之外,我已经搜索了文档和这个网站,但我似乎只能在其中一个或另一个上搜索,而不是两者。我也尝试了一个自定义匹配器,但这似乎也不符合目的。
答案 0 :(得分:1)
通过蛮力找到解决方案。如果有人有任何更好的解决方案,我愿意听取任何更好的解决方案。
function formatemp(item) { return item.empnum + " : " + item.empname; }
$("#empsDropDown").select2({
data:{ results: <?PHP echo json_encode($employees);?>, text: formatemp},
placeholder: " <?PHP echo lang("All");?> ",
minimumInputLength: 2,
allowClear: true,
id: function(obj) {return obj.empnum; },
formatResult: formatemp,
formatSelection: formatemp
});
我刚用text: 'empname'
替换了我用来填充列表的格式化程序函数text: formatemp
。我从没想过它会起作用,但确实如此。