如何获得像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这样的人可以很好地完成工作
使用jQuery UI自动完成的自动对焦。 这应该自动关注列表中第一个找到的项目。
自动对焦