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

我正在尝试实现像Stack Overflow这样的自动完成function来完成标签。 但是,我试图查看源和它的缩小

我试图获得诸如让用户添加任何标记之类的function,如果它存在于列表中然后很好,或者将其添加到数据库中。

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

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

如果你看看这个答案: jQueryUI:我如何自定义格式化Autocomplete插件结果?

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

我没试过这个,但我想通过打开那个黑盒子,并且替换或重新调整renderMenu及其相关function,你就可以做你想要的 – 在实际的文本框中只渲染一个项目。

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


编辑

我在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; 

工作实例

您可以查看jQuery UI Autocomplete 。

完整的源代码可以在他们的Git存储库中找到 。

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

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

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

自动对焦