Tokeninput Autocomplete无法使用grails

时间:2014-02-14 07:17:37

标签: javascript jquery grails autocomplete jquery-tokeninput

我认为这更像是一个jQuery问题,而不是grails。我正在努力使tokeninput使用grails表单,并输入以下内容:

<g:field type="text" name="tags" id="my-text-input"></g:field>

这会在网页上呈现为:

<input type="text" autocomplete="off" id="token-input-my-text-input" style="outline: none; width: 30px;">

以下是我在上面的链接中提到的jQuery代码:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="yourfiles/jquery.tokeninput.js"></script>
<link rel="stylesheet" type="text/css" href="yourfiles/token-input.css" />

<script type="text/javascript">
$(document).ready(function () {
    $("#my-text-input").tokenInput("/TaggableDemo/product/tags");
});
</script>

ProductController下的标签操作如下:

def tags = {

        render Tag.findAllByTagnameIlike("${params.q}%")*.tagname as JSON
    }

标记域有3个条目:“Tag1”,“Tag2”,“Tag3” 当我在有问题的输入元素中键入“T”时,标签控制器会被调用以进行自动完成,并且还返回正确的json(我通过调试发现了这一点)。但是在自动完成div弹出窗口中没有显示任何内容。我想知道这里有什么不对。那么任何人都可以帮助它成功吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

def tags = {
    def foundTags = Tag.findAllByTagnameIlike("${params.q}%")
    def output = []
    foundTags.each {
        output.add([id: it.id, name: it.tagname]) // assumes Tag has an id field exposed
    }
    render output as JSON
}

代码没有测试对不起,所以可能有错误。