Grails One表单可以有两个动作吗?

时间:2011-07-22 13:13:25

标签: forms grails submit

我的表格有两个按钮......两者都是为了完全不同的目的..因此有必要采取单独行动......是否可能?如果不是什么是解决这个问题的最佳解决方案...... 谢谢你提前

3 个答案:

答案 0 :(得分:9)

<g:actionSubmit> tag允许您在一个表单中拥有多个提交按钮。

<g:form controller="test">
  <g:actionSubmit value="Submit to success" action="success"/>
  <g:actionSubmit value="Submit to delete" action="delete"/>
</g:form>

答案 1 :(得分:2)

您可以使用<g:actionSubmit/>按钮将单个grails表单转换为不同的操作。

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

单击“一个动作”将由当前控制器的oneAction动作处理;单击“另一个操作”将由当前控制器的anotherAction操作处理。

答案 2 :(得分: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
}