我尝试进行多值自动完成功能。 http://jqueryui.com/autocomplete/#multiple
我试图理解代码,但我无法弄清楚response
部分。 (我是javascript的新手。我在Grails做了一个项目,我在一个月前开始学习......我是一个新手......)
.autocomplete({
minLength: 0,
source: function( request, response ) {
// delegate back to autocomplete, but extract the last term
response( $.ui.autocomplete.filter // Please explain this part for me
(availableTags, extractLast( request.term ) ) );
请为我解释response( $.ui.autocomplete.filter
部分。另外,如果我想从我的Grails控制器使用JSON源,我该如何替换availableTags
?
提前致谢。
答案 0 :(得分:2)
您发布的FWIK代码是小部件初始化的一部分。 在初始化时,您需要提及下拉列表的来源。 来源可以是以下之一:
1) Array
2) String
3) Function( Object request, Function response( Object data )
回答响应部分:这是一个负责过滤小部件结果的函数。
回答JSON源部分: 如果Source是JSON,那么您需要指定将为该JSON提供服务的主机。每当用户键入小部件时,都会调用主机,请求参数名为TERM。因此,您需要确保从请求中过滤它并返回该请求的JSON。
在这里阅读更多相关信息: 使用Array作为输入查看自动完成中的函数源。 http://jqueryui.com/autocomplete/#multiple
查看源定义和API文档: http://api.jqueryui.com/autocomplete/#option-source
API文档中的事件响应与上面发布的代码中提到的响应不同。
对于ui.autocomplete.filter方法,请参阅正在导入的JS的源代码,这可能会让您更好地理解代码。但根据我的理解,在源代码中上面的代码中调用的响应函数是一个回调,在从数组中提取最后一个术语后委托回自动完成。
ui.autocomplete.filter方法将从提供的列表中过滤所需的元素,并回调相同的函数以提取更多。正如我所读到的,它确实一次拉出一个元素。 (请参阅上面视图源中的提取和拆分功能)
对不起,答案很重要,但请阅读文档和其他帖子,有关它的文章可以更好地了解代码。