0

我刚刚开始使用 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:博客

搜索工作使用

text: 'empname'

少量。所以它只搜索名称。如果您在搜索框中输入“B”,它将过滤并找到博客等。但是,如果您在搜索框中输入“0”,它将不会返回任何结果。

有没有办法让它同时搜索两个字段(empname 和 empnum)?

我是 select2 的新手,所以我希望这是我还没有尝试过的显而易见的事情。

我已经尝试 text: 'empname' + 'empnum'text: 'empname', text: 'empnum'

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

4

1 回答 1

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用来填充列表的格式化程序函数替换。我从没想过它会起作用,但它确实奏效了,非常好。

于 2013-09-27T13:53:09.103 回答