Grails Одна форма может иметь два действия? - PullRequest
3 голосов
/ 22 июля 2011

моя форма имеет две кнопки ... обе для совершенно разных целей ... поэтому есть необходимость в отдельных действиях ... Возможно ли это? если нет, то каково лучшее решение для решения такой проблемы ... Спасибо заранее

Ответы [ 3 ]

9 голосов
/ 22 июля 2011

Тег <g:actionSubmit> позволяет использовать несколько кнопок отправки в одной форме.

<g:form controller="test">
  <g:actionSubmit value="Submit to success" action="success"/>
  <g:actionSubmit value="Submit to delete" action="delete"/>
</g:form>
2 голосов
/ 22 июля 2011

Вы можете использовать кнопки <g:actionSubmit/>, чтобы одна форма грааля переходила к различным действиям.

<g:form method="post">
    ...
    <g:actionSubmit action="oneAction" value="One Action"/>
    <g:actionSubmit action="anotherAction" value="Another Action"/>
</g:form>

Нажатие «Одно действие» будет обрабатываться действием oneActionтекущего контроллера;щелчок «Другое действие» будет обработан действием anotherAction текущего контроллера.

1 голос
/ 22 июля 2011

Одна форма может иметь только одно действие.

Вы можете изменить это действие динамически, используя JavaScript, но это добавляет зависимость от JS.

Лучше, если форма будет отправленана один URL-адрес, а затем выполните что-то вроде (псевдокод):

if (submit is foo) {
    process_form_with_foo_class()
} elseif (submit is bar) {
    process_form_with_bar_class()
} else {
    // Form was submitted without using a submit button
    // e.g. with enter, or JS.
    process_form_with_foo_class() // Let's use foo as the default
}
...