jQuery插件:Autocomplete

1) 这是最早的版本,基于jQuery 1.2:

http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

2) 现已迁移到jQuery 1.5,作为jQuery UI Plugins的一个子项目:

http://jqueryui.com/demos/autocomplete/

 

示例就不往这上面抄了。

有一个问题需要关注:输入法开启下的事件捕获。也就是含有中文的提示功能。

这个功能在Firefox下有些问题,因为插件的事件捕获是通过keydown事件进行的,在其他浏览器下开启输入法,keydown将在选字结束后触发;而Firefox下无论输入法打开与否,每次敲击案件均会触发。
为了说明,给个例子,假如现在输入“王”,击键顺序是“wang1”.
匹配库中有一个词语“王五”
那么事件顺序是:
firefox: w(keydown'w')->a(keydown'a')->n(keydown'n')->g(keydown'g')->1(keydown'1')
其他: wang1(keydown'王')
firefox会以"wang1"而不是"王"作为前缀进行查找,显然,“王五”不会被提示出来。
现在需要做的就是,在中文选词结束后,获取输入的中文,并且以这个中文内容作为自动提示前缀进行搜索。
为此,我们为输入框加一个事件监听就行了:

 

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

 

在代码200行处添加这个事件的绑定即可(如果向上追溯,可以看出这段代码是对输入框绑定一系列事件处理函数)。

这个修改基于1) 中的autocomplete插件,2) 的应该差不多,不再赘述。

你可能感兴趣的:(jquery,UI,浏览器,firefox)