【问题标题】:How to mention different action in form on two submit tags?如何在两个提交标签的表单中提及不同的操作?
【发布时间】:2013-03-25 06:33:13
【问题描述】:

我有我的表单标签,并且我的表单中有两个按钮。单击提交按钮时,如何在表单中调用不同的操作。

这是我的代码:

<%= form_for :attachment_metadata, :url=>{:action=>'delete_files'}, :html=>{:onsubmit=> "return confirm('Are you sure, you want to delete selected files?');",:multipart => true} do |f| %>
   <table>
     ..........Some stuff here..........
   </table> 
<%= submit_tag 'Reprocess', :class =>'button' %>
<%= submit_tag 'Remove', :class =>'button' %>
<% end %>

单击“重新处理”时,我想以相同的形式调用不同的操作。

我该怎么做?

请帮忙

提前致谢

【问题讨论】:

标签: mysql ruby-on-rails ruby ruby-on-rails-3 rubygems


【解决方案1】:

params[:commit]可以区分两个提交标签的动作。
更新:

@action = 参数[:commit]

如果您单击Reprocess 按钮,它会将@action 的值设为“Reprocess”,如果您单击Remove 按钮,它会给出“Remove”的值,

【讨论】:

  • 您可以在提交操作中使用它。您可以使用 params[:commit] 区分单击了哪个按钮,它给出了您单击的按钮的值,只需检查
【解决方案2】:

Railscast 38 对此进行了介绍。我相信它会解决你的问题。它非常简单。每当您提交表单时,它会在 params hash 中发送一些关于您执行的提交的信息,我建议您看一下 railscast,您会完全理解。

【讨论】:

  • 我想在提交重新处理按钮时调用重新处理操作
  • 确定你可以打电话,看看 railscast。
【解决方案3】:

您可以有两种不同的表单,并且可以使用 jQuery 提交表单。在这种情况下,您可以将表单提交到特定位置。

<form id="target" action="destination.html">
  <input type="text" value="Hello there" />
  <input type="submit" value="Go" />
</form>
<div id="other">
  Trigger the handler
</div>

$('#target').submit(function() {
  alert('Handler for .submit() called.');
  return false;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 2013-08-19
    相关资源
    最近更新 更多