2009-05-21 70 views
0

我有一个简单的表格,看起来像这样2个按钮,1种形式

<% remote_form_for post, :url => post_path(post), :method => :put do |f| -%> 
    <%= f.submit "Approve" %> 
    <%= f.submit "Deny" %> 
<% end -%> 

这使得

<input type="submit" value="Approve" name="commit"/> 
<input type="submit" value="Deny" name="commit"/> 

在我的控制,我有以下逻辑

@post.approved = params[:commit] == 'Approve' ? true : false 

所以问题如果用户点击“批准”按钮或“拒绝”按钮,则发送的参数是:commit => "Approve"

有没有人知道与此或其他(简单)方法执行相同功能有关的错误?

谢谢。

+5

出于某种原因,我担心后面的表“2 X,1 Y” – 2009-05-21 20:06:13

+0

对不起任何标题提交,它可能是骗局但是我想要一些能吸引你眼球的东西;) – vrish88 2009-05-21 20:29:44

回答

1

JS库(原型我猜)不知道什么按钮被按下。它只是序列化Ajax请求的表单字段值。当使用普通表单POST时,浏览器将正确的值附加到提交参数。

您可以添加隐藏的表单域(例如动作)。然后添加JS代码,以便在按下适当的按钮(并在发送Ajax请求之前)时设置隐藏字段的所需值。

1

另一种选择是覆盖第二个按钮的“名称”参数。

<%= f.submit "Deny", :name => "commit_deny" %> 
0

我想提交的每个表单(HTML事)唯一的,这样yopu有两种选择:

  1. 使用2种形式蒙山1提交各等原因,致使同样的动作(CSS给你喜欢)
  2. 使用2键式控制(即不提交),并与这两个的onclick事件(JavaScript的需要)