首页 > 技术文章 > Jquery easyui-combobox 的一个BUG

xienb 2013-11-20 20:10 原文

  通过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的选择器选择出错,求大虾们指教。

推荐阅读