当前位置:   article > 正文

easyui combobox下拉框组件输入检索全模糊查询

easyui combobox下拉框组件输入检索全模糊查询

前引:

        easyui下拉组件(combobox),输入检索下拉内容,是默认的右模糊匹配,而且不支持选择。因业务要求需要做成全模糊查询,目前网上搜索有两种方案:

        1.修改easyui源码,这个得看运气,每个项目easyui版本不相同,文章里提供的源码位置我这个版本没有对应上;

        2.自己改装下拉组件,这个非常耗时,而且不稳定。

成果展示:

开发思路:

        easyui的下拉组件进行输入检索时,将不满足匹配的下拉选项隐藏起来。这里我们只需要在onChange方法里,将当前下拉框输入的内容和所有下拉选项去全模糊匹配,将满足的拉项显示出来即可;

代码:

  1. <select
  2. id="test"
  3. class="easyui-combobox"
  4. style="width:150px;"
  5. data-options="
  6. valueField:'code',
  7. textField:'name',
  8. panelHeight:'200',
  9. editable:true,
  10. onChange: function(newValue, oldValue) {
  11. // 获取到所有下拉框元素
  12. $.each($('.combo-p'), function(i, n){
  13. // 只操作显示的下拉框元素
  14. if (i, $(n).css('display') == 'block') {
  15. // 得到下拉框元素下所有的下拉选项
  16. let options = $(n).find('div .combobox-item')
  17. $.each(options, function(i, n){
  18. // 进行全模糊匹配,匹配成功显示下拉选项
  19. let val = $(n).text()
  20. if (val && val.indexOf(newValue) >= 0) {
  21. $(n).css('display', 'block')
  22. }
  23. })
  24. }
  25. })
  26. }
  27. ">
  28. <option value="1">湖南</option>
  29. <option value="2">湖北</option>
  30. <option value="3">武汉</option>
  31. <option value="4">北京</option>
  32. <option value="5">上海</option>
  33. <option value="6">天津</option>
  34. <option value="7">南昌</option>
  35. <option value="8">内蒙古</option>
  36. <option value="9">新疆</option>
  37. </select>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/395336
推荐阅读