私のフォームは2つのボタンを持っています...全く違う目的のために...別々のアクションを持つ必要があります...可能でしょうか?そのような問題に対処する最良の解決策は何ですか? ありがとうございますGrails 1つのフォームは2つのアクションを持つことができますか?
3
A
答えて
8
<g:actionSubmit>
tagでは、複数の送信ボタンを1つのフォームにまとめることができます。
<g:form controller="test">
<g:actionSubmit value="Submit to success" action="success"/>
<g:actionSubmit value="Submit to delete" action="delete"/>
</g:form>
1
単一のフォームは1つのアクションしか持つことができません。
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
}
2
あなたは、単一のGrailsを持っている<g:actionSubmit/>
ボタンを使用することができますさまざまなアクションに行く形成。
<g:form method="post">
...
<g:actionSubmit action="oneAction" value="One Action"/>
<g:actionSubmit action="anotherAction" value="Another Action"/>
</g:form>
クリック「ワンアクション」電流コントローラのoneAction
作用によって処理されます。 「別のアクション」をクリックすると、現在のコントローラのアクションであるanotherAction
が処理されます。
yup! thanks Quentin – maaz
正規のHTMLフォームには当てはまりますが、Grailsは ' 'でこれを行うことができます。それは、正しいアクションにルーティングされる原因となるパラメータを要求に入れます。 –
@Rob - err ... Grailsには、今説明したばかりの機能が組み込まれていますか? – Quentin