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