天天看點

jQuery插件 Autocomplete 不支援多中文的解決辦法

web前端開發中,涉及到選擇的時候,Autocomplete是一個相當常用的插件,但是此插件在涉及到中文的時候卻有一些bug.

當每次輸入一個中文字的時候,這個插件工作的很好,當一次輸入多個中文字的時候,就不能産生過濾作用。

這個問題在手機移動端顯示的尤為明顯。即使使用 Autocomplete 的mobile版本這個問題一樣存在。

檢視源碼,分析原因在于,過濾觸發的事件是 根據event.keyCode 來判斷的。但是由于中文輸入的特殊性,尤其在手機上,先拼音,然後選擇漢字,

這個漢字,選擇漢字的動作是觸發不了 鍵盤事件,更沒有 event.keyCode。

問題由此産生。

修改源碼,加入對input事件的監聽,此事件在chrome系浏覽器和 移動端支援極好,他可以實時監聽輸入框的内容變化,而不用等到失去焦點,這點和onchange事件不一樣。

修改如下

大概就是 156行 綁定input事件 

.

bind("input",function(){
		onChange(0, true);
	})
           

修改後,問題解決。

繼續閱讀