我认为这更像是一个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弹出窗口中没有显示任何内容。我想知道这里有什么不对。那么任何人都可以帮助它成功吗?
答案 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
}
代码没有测试对不起,所以可能有错误。