在Grails中,如何从g:select中调用控制器操作

时间:2009-11-09 17:54:52

标签: grails controller

我在我的视图中使用g:select(实际上是g:currencySelect)。

我想要在用户更改结果选择框中的值时立即触发控制器操作。

我该怎么做?

3 个答案:

答案 0 :(得分:10)

我想我在这里回答了我自己的问题,但如果有更好的方法可以让我知道:

使用select标签中的onchange javascript函数:

<g:form controller="changeCurrency" action="changeCurrency">
    <g:select onchange="submit()"/>
</g:form>

答案 1 :(得分:4)

另一种方式可以是:


    <g:select name="someName" from="${list}" onchange="goToPage(this.value)"/>

    <script type="text/javascript">

    function goToPage(requestParams){
    window.location.href="${createLink(controller:'controllerName' ,action:'actionName' ,params:[paramsName:""])}" + requestParams;
    }

    </script>
    

答案 2 :(得分:4)

如果您需要ajax请求,请尝试以下操作:

<g:select name="type" from="${['import-a', 'import-b']}"
onchange="jQuery('#addArea').load('/app/import/chooseImportType/' +
jQuery('#type').val())"/>

在控制器中:

def chooseImportType (){
 render params.id
}

使用Grails 2.0.4