easyui combobox 用搜狗输入法点选汉字时无法触发模糊查询filter

一个古老的easyui项目里,一位用户用搜狗输入法打完字还要用鼠标点选汉字,然后发现无法执行easyui combobox自带的模糊查询操作

<select class="easyui-combobox" id="comboboxID"></select>
$("#comboboxID").combobox({
      valueField: 'ID',
      textField: 'Name',
      method: "get",
      editable: true,
      url: "../apis/........",
      filter: function (q, row) {
          var opts = $(this).combobox('options');
          var enterStr = q.toUpperCase();
          return row[opts.textField].indexOf(enterStr) != -1;
      }
});

查到这个事件:compositionend,怎么用呢

$("#comboboxID").combobox('textbox').bind('compositionend', function (event) {
   //获取到点选的汉字
     var q = event.originalEvent.data
  //获取对应的下拉列表dom
    var panel = $("#comboboxID").combobox('panel')
    var enterStr = q.toUpperCase()
  //不匹配的项隐藏
    panel[0].childNodes.forEach(function (item) {
       if (item.innerText.indexOf(enterStr) !== -1) {
          $(item).css('display', 'block')
       } else {
          $(item).css('display','none')
       }
     })
})

 

posted @ 2021-01-20 17:35  WinniVVV  阅读(422)  评论(0)    收藏  举报