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')
}
})
})

浙公网安备 33010602011771号