1

在下拉菜单中进行选择后,我试图调用一个函数。这是我的 list.gsp 中“代码”域类的下拉菜单的代码:

<td><g:select name="data" from="${codeInstance.datas.language}" 
          onchange="${remoteFunction(action: 'translationById')}"/> 
</td>

这是我试图调用的函数。这是在我的代码控制器中:

def translationById = {
        println "Fine"
        //println params;
    }

我只是想打印出“Fine”,所以我知道该函数已被调用,但“Fine”永远不会被打印出来。为什么函数没有被调用?

4

2 回答 2

1

不要使用闭包,而是使用方法,例如:

def translationById() {
        println "Fine"
        //println params;
}

此外,使用一些浏览器调试器(例如 firebug 或类似工具)来查看是否显示错误消息。

如果在 onchange 事件而不是 remoteFunction 中放置警报会发生什么?如果显示警报,那么我认为您的问题出在原型库上。将原型库添加到您的标题中。喜欢<g:javascript library="prototype" />

于 2012-08-06T19:58:48.677 回答
0

语法对我来说看起来不错。尝试确保您的“codeInstance”和“datas”不为空。另外,尝试像这样传递控制器名称:

remoteFunction(action: 'translationById', controller: 'code')

grails 中的新规范是使用方法而不是闭包:

def translationById(){
    println "fine"
}
于 2012-08-06T18:52:25.340 回答