Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制JQuery自动完成标记上的元素数量_Javascript_Jquery_Node.js - Fatal编程技术网

Javascript 限制JQuery自动完成标记上的元素数量

Javascript 限制JQuery自动完成标记上的元素数量,javascript,jquery,node.js,Javascript,Jquery,Node.js,我有以下代码: 在jQueryAutoComplete中,您可以使用slice进行限制,但我不确定如何使用这个插件 我想限制“自动完成”下拉列表中显示的元素数量 现在,所有元素都显示出来了。我只想显示与用户键入内容最接近的前10个 如何限制显示的元素 还有,有没有比我目前拥有的代码更好的解决方案?我听说我应该使用Node.js和/或bootstrap。关于NodeJS,它是一种JavaScript服务器端语言,非常容易入门,但我不认为对自动完成功能有什么特别的兴趣 我不知道tagit是如何工作

我有以下代码:

在jQueryAutoComplete中,您可以使用
slice
进行限制,但我不确定如何使用这个插件

我想限制“自动完成”下拉列表中显示的元素数量

现在,所有元素都显示出来了。我只想显示与用户键入内容最接近的前10个

如何限制显示的元素


还有,有没有比我目前拥有的代码更好的解决方案?我听说我应该使用Node.js和/或bootstrap。

关于NodeJS,它是一种JavaScript服务器端语言,非常容易入门,但我不认为对自动完成功能有什么特别的兴趣

我不知道tagit是如何工作的,但是如果你想使用bootstrap来管理它,你可以很容易地使用“typeahead”插件并将items选项设置为你想要的最大项数

编辑:根据tagit.js文档和jQuery自动完成文档

允许覆盖源并选择由设置的选项 默认设置,以及添加要传递给 jQuery UI自动完成小部件,如minLength或delay

如果要使用自定义,则应覆盖autocomplete.source 自动完成源代码,如Ajax/XHR响应

您无法轻松添加一个选项来限制显示的最大项目数,但是您可以使用一个函数覆盖源,您可以在其中限制响应项目

我一直认为bootstrap更适合您的需要,并且它不需要jQueryUI

编辑:

经过讨论,这个插件应该是你正在寻找的


Node.js和Bootstrap与此无关……你听说过推荐它们的理由吗?@rynah可能只是因为Bootstrap提供了一个自动完成插件?但是你对NodeJS的看法是对的。Bootstrap和TypeAhead当然很有帮助,但是我无法在我已经添加到文本框中的标记上添加气泡标记效果。相反,它们只是在普通文本中显示,而不是在原始JSFIDLE中可以看到的背景效果。但是你的tagautocomplete插件似乎能够使用引导选项,我正在尝试编辑你的小提琴!一个问题是tagautocomplete只适用于contenteditable HTML元素,这是最近移动浏览器才支持的(不知道您是否关心它?),第二个问题是它前面应该有一个特殊字符,如#或@。(不知道你是否喜欢它?)好吧,如果我在特殊角色问题上绝对必须妥协,那么我会接受它。所以,是的,我可以保留它。另外,我并不真的关心手机浏览器的版本,所以只要它在桌面上工作,它就很好。好吧,也许这个更新的提琴会让你感兴趣?记住,你必须在你要找的单词前录制一个#。而且它只适用于以您正在键入的内容开头的单词,而不适用于仅包含该内容的单词!
$('#demo2').typeahead({
    source: availableTags,
    items: 10
});
$('#demo2').tagsManager({
    typeahead: true,
    typeaheadSource: availableTags
});