【发布时间】:2014-10-08 08:58:42
【问题描述】:
我希望在 javascript 中创建一个自动完成文本框,其行为类似于开发 IDE 中的自动竞争。
我的数据是无限递归的,每个孩子可能包含数千个项目。简单的 Json 看起来像这样:
[{
id: 123,
name:abc,
children:
[
{
id: 156,
name:xyz,
children:
[
....
]
},....
]
},...]
对于每个项目,我希望能够搜索和自动完成。理想情况下,每次用户完成传递先前选择的项目的 id 时,都会通过 rest 调用检索数据。
例如对于上面的 json...当用户输入“a”时,他们会得到“abc”作为自动完成选项。当他们选择“abc”然后键入“x”时,“xyz”将是下一个自动完成选项。所以我最终会在文本框中输入“abc.xyz”。显然在现实世界中我会强制输入超过 1 个字符。
是否有任何库已经提供了这种行为,所以我不必重新发明轮子?我找到的最接近的是 select2 (http://ivaynberg.github.io/select2/),我尝试使用 jquery 自动完成功能 (http://jqueryui.com/autocomplete/),但无法完全理解我所追求的行为。
感谢任何帮助。
【问题讨论】:
-
select2 没有做什么以排除它作为一个选项?只是想完全掌握
-
它可能会做我所追求的,但我不知道怎么做。具体来说,使用先前选择的项目来继续自动完成另一个相关搜索。
标签: javascript jquery jquery-ui autocomplete jquery-select2