天天看點

自動完成

 學弟叫實作自動完成的功能,上網搜了一些:

//當然了,這個隻能用于ie,其他的浏覽器的話,要調整css or javascript了。學弟就提供了一個庫,讓我幫他弄,好吧。去看看:、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

scriptaculous:(由于中文自動完成問題)

在對scriptaculous的autocompleter功能進行測試時,我發現在使用中文時存在問題。

例如:

指定一個文本域元素,調用autocompleter.local:

<code>new autocompleter.local('idtextfield',      "idmenu",      ["好天氣", "abc"]     ,{});</code>

這時,如果在文本域中輸入中文,如:"好",不能顯示比對選項;

如果輸入英文,如:"a",可以顯示比對選項“abc”.

産生原因:

scriptaculous通過監聽keydown事件監測鍵盤輸入,是以每次輸入一個字母,都會觸發

keydown事件,這時scriptaculous就會從資料源異步擷取資料,顯示在下面的可選項清單中。

但是在中文輸入狀态中,一旦按下字母鍵,輸入法程式就接管了鍵盤輸入,此時無法再網頁上觸發keydown事件。當中文輸入完成,輸入法程式将輸入的漢字拷貝到輸入框中,此時也不觸發keydown事件。這樣,scriptaculous就不會從資料源取資料,是以也不會顯示可選項清單。

解決辦法:

針對其原因,我修改了scriptaculous的智能完成部分代碼,通過輪詢的方式檢測鍵盤輸入,可以完好的解決此問題。

原文連結: http://web.kingyar.com/article.aspx?id=181 : 裡面有下載下傳的~

繼續閱讀