2011-07-17 143 views
12

我可以有一個按鈕在窗體的一面,但沒有type=submitbutton_to沒有提交

我正在做一些特別的事情。我有一個表格,

<%= form_for(@user) do |f| %> 

並且此表格將根據會話中的值呈現。

在表單中,我已經有f.submit,並且我想要另一個按鈕取消按鈕來調用控制器的方法,以便在用戶想要取消輸入時更改會話值。

但是,如果我使用button_to,按鈕的類型將是「提交」,當我點擊按鈕時,它會提交整個表單。如果某些價值無效,它會投訴。它不起我預期的「取消」按鈕的作用。

所以我可以有一個不提交表單的按鈕?

我試圖用submit_tag,但對我來說BUTTOM dosn`t工作...

<%= submit_tag 'Cancel Edit', :type => 'button', :controller => 'my_account', :action=>'cancel_edit' %> 

回答

12

button_to helper實際上產生一個整體的形式:

生成一個包含一個按鈕形式提交到由options組創建的URL。

所以這絕對不是你想要的。我想你只是想在你的HTML中生成一個簡單的<input type="button">元素。然而,在FormTagHelper沒有button_tag但有一個submit_tag,你可以用手一個:type選項,這將:

任何其它按鍵創建標籤標準的HTML選項。

那麼試試這個:

submit_tag 'Pancakes', :type => 'button' 

其中 「薄煎餅」 將成爲您真正的標籤。

+0

THX的答覆...讓我試試看。 ... – jojo

+0

但是我怎麼能從提交標籤invoeke行動?我需要使用JavaScript? – jojo

+0

@shrimpy:鉤了一些JavaScript。 –

20

嘗試以下操作:

<%= button_tag "Cancel", :type => 'button', :class => "subBtn", :onclick => "location.href = '#{list_admin_users_admin_index_path()}'" %> 
+1

爲我工作,thnx。 –

0

可以使用類似的幫手f.submit

<%= f.button 'Save' %>

Documentation