2009-05-21 81 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的需要)