動作してform_for(:remote=>true)
いますが、送信する前に通常のJavaScript確認ボックスを表示したいと思います。
これを達成する方法はありますか?理想的には、次のようなもので送信のキャンセルを受け入れる、ある種の:beforeまたは:onsubmit:return confirm("Are you sure?");
またはおそらくjavascriptイベントフック?
ありがとうございました
動作してform_for(:remote=>true)
いますが、送信する前に通常のJavaScript確認ボックスを表示したいと思います。
これを達成する方法はありますか?理想的には、次のようなもので送信のキャンセルを受け入れる、ある種の:beforeまたは:onsubmit:return confirm("Are you sure?");
またはおそらくjavascriptイベントフック?
ありがとうございました
<%= for_form @my_thing, remote: true do |f| %>
<%= f.text_field :my_value %>
<%= f.submit 'Submit', confirm: 'Are you sure?' %>
<% end %>
これをシームレスに機能させるには、 Rails UJSドライバー(新しいRailsプロジェクトではデフォルトで有効になっています)を使用する必要があります。
必要に応じてアクセスできるフォーム送信ライフサイクルへのフックもあります。
ajax:beforeSend
-XHRリクエストが行われる前にトリガーされます。falseを返すと、リクエストがキャンセルされますajax:success
-サーバーからの応答が成功するとトリガーされますajax:error
-サーバーからのエラー応答でトリガーされますajax:complete
-サーバーからの成功またはエラー応答のいずれかでトリガーされますconfirm
したがって、例として、次のようなコードでフォームヘルパーオプションを模倣できるはずです。
$("#my_remote_form").on('ajax:beforeSend', function() {
return confirm("Are you sure?");
});