2个按钮,1种形式
问题描述:
我有一个简单的表格,看起来像这样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"
。
有没有人知道与此或其他(简单)方法执行相同功能有关的错误?
谢谢。
答
JS库(原型我猜)不知道什么按钮被按下。它只是序列化Ajax请求的表单字段值。当使用普通表单POST时,浏览器将正确的值附加到提交参数。
您可以添加隐藏的表单域(例如动作)。然后添加JS代码,以便在按下适当的按钮(并在发送Ajax请求之前)时设置隐藏字段的所需值。
答
另一种选择是覆盖第二个按钮的“名称”参数。
<%= f.submit "Deny", :name => "commit_deny" %>
答
我想提交的每个表单(HTML事)唯一的,这样yopu有两种选择:
- 使用2种形式蒙山1提交各等原因,致使同样的动作(CSS给你喜欢)
- 使用2键式控制(即不提交),并与这两个的onclick事件(JavaScript的需要)
出于某种原因,我担心后面的表“2 X,1 Y” – 2009-05-21 20:06:13
对不起任何标题提交,它可能是骗局但是我想要一些能吸引你眼球的东西;) – vrish88 2009-05-21 20:29:44