我的方法原理是,补充一个原插件触发查询的事件,就是当input输入栏发生字符变化时,重新进行查询(调用其内部的onChange函数),这里主要针对firefox而言,因为我们的系统访问最多的是IE和firefox。而恰好firefox有一个input变化的事件就是oninput,那么我们只要在原jquery.autocomplete.js第199行,插入如下代码: .bind("input", function() { // @hack:support for inputing chinese characters in firefox onChange(0, true); });
插入后,代码大概如下:
... ... jQueryinput.unbind(); jQuery(input.form).unbind(".autocomplete"); }).bind("input", function() { // @hack:support for inputing chinese characters in firefox onChange(0, true); }); ...
2、支持多次回车选定: 修改91行: // only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all $input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) { 修改为: // only opera mozilla doesn't trigger keydown multiple times while pressed, others don't work with keypress at all $input.bind((($.browser.opera || $.browser.mozilla) ? "keypress" : "keydown") + ".autocomplete", function(event) {