通過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的選擇器選擇出錯,求大蝦們指教。