當每次輸入一箇中文字的時候,這個插件工作的很好,當一次輸入多箇中文字的時候,就不能產生過濾作用。
這個問題在手機移動端顯示的尤爲明顯。即使使用 Autocomplete 的mobile版本這個問題一樣存在。
查看源碼,分析原因在於,過濾觸發的事件是 根據event.keyCode 來判斷的。但是由於中文輸入的特殊性,尤其在手機上,先拼音,然後選擇漢字,
這個漢字,選擇漢字的動作是觸發不了 鍵盤事件,更沒有 event.keyCode。
問題由此產生。
修改源碼,加入對input事件的監聽,此事件在chrome系瀏覽器和 移動端支持極好,他可以實時監聽輸入框的內容變化,而不用等到失去焦點,這點和onchange事件不一樣。
修改如下
大概就是 156行 綁定input事件
.
bind("input",function(){
onChange(0, true);
})
修改後,問題解決。