我想在下拉菜单中进行选择后调用一个函数。这是我的list.gsp中“代码”域类的下拉菜单的代码:
<td><g:select name="data" from="${codeInstance.datas.language}"
onchange="${remoteFunction(action: 'translationById')}"/>
</td>
这是我试图打电话的功能。这是在我的CodeController中:
def translationById = {
println "Fine"
//println params;
}
我只是试图打印出“精细”,所以我知道该函数被调用,但“精细”永远不会被打印出来。为什么函数没有被调用?
答案 0 :(得分:1)
使用方法,而不是使用闭包,例如:
def translationById() {
println "Fine"
//println params;
}
此外,使用一些浏览器调试器(如firebug或类似的)来查看是否显示错误消息。
如果在onchange事件中放置警报而不是remoteFunction会发生什么?如果显示警报,那么我认为你的问题在于原型库。将原型库添加到标题中。与<g:javascript library="prototype" />
一样。
答案 1 :(得分:0)
语法对我来说很好。尽量确保您的'codeInstance'和'datas'不为空。另外,尝试传入控制器名称,如下所示:
remoteFunction(action: 'translationById', controller: 'code')
grails中的新规范是使用方法而不是闭包:
def translationById(){
println "fine"
}