如何从select2下拉列表中的两个字段进行搜索

时间:2013-09-27 13:53:09

标签: php jquery-select2

我刚刚开始使用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'

除此之外,我已经搜索了文档和这个网站,但我似乎只能在其中一个或另一个上搜索,而不是两者。我也尝试了一个自定义匹配器,但这似乎也不符合目的。

1 个答案:

答案 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。我从没想过它会起作用,但确实如此。