2011-07-17 1 views
12

ボタンをフォームの横に置くことはできますが、type=submitはありませんか?提出不要のbutton_to

私は何か特別なことをしています。私はフォームを持っています、

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

このフォームはセッションの値に基づいてレンダリングされます。

私はすでにf.submitを持っています。ユーザーが入力を取り消したい場合、セッション値を変更するためにコントローラからメソッドを呼び出すために、別のボタン、取り消しボタンが必要です。

私がbutton_toを使用すると、ボタンのタイプが「送信」になります。ボタンをクリックすると、フォーム全体が送信されます。値の一部が有効でない場合、それは不平を言います。私が期待した「キャンセル」ボタンとしては機能しません。

フォームを送信しないボタンはありますか?

私は実際には全体のフォームを生成

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

答えて

12

に... button_to helperをsubmit_tagを使用しようとしましたが、私にとっては湖底のdosn`t作業:

は、単一のボタンを含むフォームを生成します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

関連する問題