如何获得像Stack Overflow这样的自动完成功能

时间:2011-05-28 15:08:15

标签: javascript jquery autocomplete

我正在尝试实现像Stack Overflow这样的自动完成功能来完成标签。但是,我试图查看源及其minified

我正在尝试获取诸如让用户添加任何标记之类的功能,如果它在列表中存在则可以,或者将其添加到数据库中。

那里有哪些例子可以说明如何完成这样的事情?或者我可以以某种方式查看源的非缩小版本?

4 个答案:

答案 0 :(得分:2)

您可以查看jQuery UI Autocomplete

their Git repository中提供了完整的源代码。

答案 1 :(得分:2)

我不知道该怎么做,但是。 ..

如果你看一下这个答案:jQueryUI: how can I custom-format the Autocomplete plug-in results?

你可以看到有一种方法可以摆弄jQuery的渲染逻辑来改变菜单项的显示方式。还有一个名为renderMenu的内部jQuery函数,它实际上提供了选择。

我没有试过这个,但我想通过打开那个黑盒子,并且替换或重新渲染renderMenu及其相关功能,你就可以做你想做的事 - 只渲染一个项目,实际上文本框。

无论如何,这就是我要去的地方。


编辑

我在jQuery UI中再次查看了自动填充内容。通过插入自定义response()功能来替换菜单显示逻辑似乎非常简单。

这就是我的所作所为:

// display the first item in the list of possible completions
var myResponse =  function( items ) {
    var itemToSuggest, p1, p2;
    if (items.length === 0) {return;}
    itemToSuggest = items[0];
    this.element.val( itemToSuggest );
    p1 = this.term.length;
    p2 = itemToSuggest.length;
    setSelectionRange(this.element[0], p1, p2);
};

var oldFn = $.ui.autocomplete.prototype._response;
$.ui.autocomplete.prototype._response = myResponse;

Working example

答案 2 :(得分:1)

可能像Chosen这样的人可以很好地完成工作

http://harvesthq.github.com/chosen/

答案 3 :(得分:0)

使用jQuery UI自动完成的自动对焦。这应该自动关注列表中第一个找到的项目。

Auto focus