【问题标题】:how to call a function on submit button?如何在提交按钮上调用函数?
【发布时间】:2011-04-11 05:42:57
【问题描述】:

我是 Rails 的新手。我有一个邮件控制器和一个通过脚手架创建的邮件表,在我的表中我有一个列 current_status,我希望在提交表单时 状态是根据提交按钮类型设置的,我有两个按钮一个是保存并继续 状态为“in_progress”,另一个为“save in draft”,状态为草稿,请帮帮我,我该怎么做?

【问题讨论】:

    标签: ruby-on-rails-3 forms form-submit


    【解决方案1】:

    我不确定您是否可以指定要使用 rails 的表单生成器调用的函数(我假设是 javascript 函数?)。 Rails 非常重视一种表单、一个按钮(并且所有 Rails 表单似乎都使用相同的自动生成表单功能)。

    您可能会卡住(如果您只使用 rails)有一个下拉菜单或任何决定它是保存还是继续的东西。

    现在,如果你真的想要一个这样的条件按钮,你可能想看看从头开始(使用 ajax、javascript 等)而不是让 rails 为你构建它。当你想做一些非常基本的事情时,Rails 非常简洁......但重点是约定优于配置,所以当你想变得花哨时,它会变得非常顽固。

    编辑:您可以指定您希望表单调用哪个控制器操作,但它仍然是每个表单一个控制器。要获得两种不同的可能性,您需要有两种形式(这听起来不像您要找的?)

    【讨论】:

      【解决方案2】:

      如果你不想使用 JavaScript,你可以这样做:

      表单按钮:

      <div class="action">
        <%= submit_tag 'Save', :name => 'save_button' %>
        <%= submit_tag 'Continue', :name => 'submit' %>
      </div>
      

      记下每个提交按钮的名称。

      在控制器中,您可以单独引用每个按钮,例如,

      params[:save_button]
      params[:submit]
      

      然后,您可以在每个按钮的 create 方法中包含特定逻辑,也许在 if/elsif/else 语句中。

      【讨论】:

        猜你喜欢
        • 2022-07-07
        • 2011-09-05
        • 1970-01-01
        • 1970-01-01
        • 2011-04-20
        • 2013-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多