【问题标题】:Get name of clicked submit button in grails获取grails中单击的提交按钮的名称
【发布时间】:2018-03-20 12:12:07
【问题描述】:

在一个表单上我有两个提交按钮:

<g:submitButton name="add" value="Add"/>
<g:submitButton name="addAnother" value="Add and Create Another"/>

我需要根据用于提交表单的按钮采取稍微不同的操作。如何获取控制器中点击按钮的名称?

【问题讨论】:

    标签: grails


    【解决方案1】:

    被点击按钮的名称以 params 结尾:

    if(params["addAnother"])
       doThis()
    else
       doThat()
    

    【讨论】:

      【解决方案2】:

      来自标签文档:

      提交操作
      生成映射到特定操作的提交按钮, 这使您可以在一个表单中拥有多个提交按钮。 (...) 当您在表单中使用普通提交按钮时,它就是表单 它本身决定请求发送到哪个 URL,因此 执行什么动作。但是,此标签会覆盖该行为 并确定执行哪个动作。请注意,它仍然是 确定目标控制器的表单。

      <g:form controller="book">
          <g:actionSubmit value="click to update" action="update" />
          <g:actionSubmit value="click to delete" action="delete" />
      </g:form>
      

      尽管您提到每个按钮的操作之间存在“细微差别”,但在 grails 标记中,我建议将 actionSubmit 作为将表单数据传递给控制器​​中不同行为(操作)的首选方式。即使您在它们之间有大部分共同行为,也请考虑重构您的控制器代码,而不是在您的操作中测试请求参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-09
        • 1970-01-01
        • 1970-01-01
        • 2013-05-07
        • 2013-09-17
        • 1970-01-01
        • 2014-10-31
        相关资源
        最近更新 更多