Grails – jQuery UI Autocomplete无法正常工作

我正在尝试在输入字段中使用jQuery UI Autocomplete。 这是我在控制器中的代码。

import grails.converters.* class SomeController { def someClassList = { def list1 = SomeClass.list() def scList = [] list1.each { scList.add(it.someClassAttribute) } render scList as JSON } } 

在我看来,我有这个。

  ...     $(document).ready(function() { var someTags = "${someClassList}"; $( "#tags" ).autocomplete({ source: someTags, minLength: 2 }); });  

但是当生成gsp代码时,它包含

  

我查看了Tokeninput Autocomplete的post没有使用grails,但它对我不起作用。 请帮忙。 提前致谢。

编辑这是我在_form.gsp中的gsp代码。

  

编辑 – 附加问题我将源更改为此并且它可以工作。

 source: "/myAppName/someControllerName/someClassList" 

但是,整个自动完成列表显示并且不会缩小范围。 有任何想法吗?

毫无后顾之忧。 适合您的链接是: http : //ohmiserableme.blogspot.co.uk/2011/08/grails-jquery-ajax-autocomplete-with.html

下载http://www.grails.org的 Grails应用程序框架

创建grails应用程序。

从( http://www.jquery.com )下载并安装jQuery(将JavaScript文件复制到您的grails app home web-app / js文件夹)

下载并安装jQuery ui插件

 Create a domain class "City" package myapp class City { String city static constraints = { city nullable:false, blank:false, maxSize:200 } } create controller grails create-controller city edit the CityController, import grails.converters.* add def ajaxCityFinder = { def citiesFound = City.withCriteria { ilike 'city', params.term + '%' } render (citiesFound as JSON) } 

使用以下代码更新您的gsp文件:

        $(document).ready(function() { $('#city').autocomplete({ source: '' }); });    

虽然我还没有对此进行测试,但我仍然认为如果你每次按一个键都将一个println放在控制器中,它会被送回去获得一个新列表吗?

可悲的是,这是ajax的工作原理。

看看我的回购中的boselecta插件 – 看看我是如何在该插件中完成自动完成的。 与HTML 5数据列表中一样。 您可能会发现它更好用。 实际gsp做自动完成 。 从websockets接收dataList的组件。

我最近做了一些工作,以便dataList id / Element是可选择的,并且第一个gsp底部的javascript将标签转换为选定的值。