web-dev-qa-db-ja.com

送信せずにbutton_to

フォームの横にボタンを配置できますが、type=submitはありませんか?

私は何か特別なことをしています。私には形があります、

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

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

フォームの横には、すでにf.submitがあり、ユーザーが入力をキャンセルしたい場合に、コントローラーからメソッドを呼び出してセッション値を変更するための別のボタン、キャンセルボタンが必要です。

しかし、button_toを使用すると、ボタンのタイプは「送信」になり、ボタンをクリックすると、フォーム全体が送信されます。値の一部が無効な場合は、文句を言います。思った「キャンセル」ボタンとしては動作しません。

フォームを送信しないボタンを作成できますか?

Submit_tagを使おうとしましたが、ボタンが機能しません...

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

button_to helper は、実際にはフォーム全体を生成します。

optionsのセットによって作成されたURLに送信する単一のボタンを含むフォームを生成します。

だからそれは間違いなくあなたが望むものではありません。 HTMLで単純な<input type="button">要素を生成したいだけだと思います。ただし、 FormTagHelper にはbutton_tagはありませんが、submit_tagを渡すことができる :type はあります。オプションとそれは:

その他のキーは、タグの標準HTMLオプションを作成します。

だからこれを試してみてください:

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

ここで、「パンケーキ」が実際のラベルになります。

11
mu is too short

次のことを試してください。

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

f.submitのようなヘルパーを使用できます。

<%= f.button 'Save' %>

ドキュメント

0
Alex Kojin