В Grails, как вызвать действие контроллера из g: select - PullRequest
6 голосов
/ 09 ноября 2009

Я использую g: select (на самом деле, g: currencySelect) на мой взгляд.

Я хочу, чтобы действие контроллера сработало, как только пользователь изменит значение в появившемся окне выбора.

Как я могу это сделать?

Ответы [ 3 ]

10 голосов
/ 09 ноября 2009

Я думаю, что отвечаю на свой вопрос здесь, но дайте мне знать, если есть лучший способ сделать это:

Используйте функцию javascript onchange в теге select:

<g:form controller="changeCurrency" action="changeCurrency">
    <g:select onchange="submit()"/>
</g:form>
4 голосов
/ 19 августа 2012

Если вы хотите запрос 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
}

Работал в Граалях 2.0.4

4 голосов
/ 10 декабря 2011

Другим способом может быть:


    <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>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...