代码之家  ›  专栏  ›  技术社区  ›  Dick Chesterwood

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

  •  6
  • Dick Chesterwood  · 技术社区  · 15 年前

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

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

    我该怎么做?

    3 回复  |  直到 12 年前
        1
  •  10
  •   Dick Chesterwood    15 年前

    我想我是在回答我自己的问题,但如果有更好的方法可以做到这一点,请务必告诉我:

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

    <g:form controller="changeCurrency" action="changeCurrency">
        <g:select onchange="submit()"/>
    </g:form>
    
        2
  •  4
  •   Divya Setia    13 年前

    另一种方法是:

    
        <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>
        
        3
  •  4
  •   Mohamad    12 年前

    如果需要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中工作