通过easyui-combobox的loadData方法,easyui-combobox可以实现一个带字符搜索的下拉框,如下图:
但是这个下拉框中的字符串如果包含一些特殊字符的时候,就会出现BUG,通过上下箭头选中带有特殊字符的项,如上图的 “-_-||”,会出现如下BUG,而且输入"-_-"也没法过滤出 -_- 和 -_-|| 这两项。
追踪combo的keydown事件,终于找到有问题的代码:_6ad.find("div.combobox-item[value=" + _6ae.pop() + "]"); 当_6ae.pop()==“-_-||”时,jquery的选择器选出来的记录竟然是所有的8条记录,就出现了上图中的全选效果。
解决方法是将find("div.combobox-item[value=" + _6ae.pop() + "]") 改成find("div.combobox-item[value='" + _6ae.pop() + "']"); 进一步搜索div.combobox-item[value=这个串,发现很多地方都是没加的,全部加上以后,因为这些特殊字符导致的bug都解决了。
问题虽然解决了,但是还是不明白为什么这个特殊字符会导致jquery的选择器选择出错,求大虾们指教。