Ajaxの周りで。
Rails3ではPrototypeHelperが廃止されて、form_for_remoteとかが消えた。その代わり、form_forに
:remote => true
を渡すことでAjaxなフォームが作れるようになる。
ただし、今までnew Ajax.Requestする前やリクエストの完了後などにJSで処理をさせる場合に使われていた、
:before => "function(){alert('before')}"
のような引数を取るようになったわけじゃないので、こうする。
まず、form_forを普通に書く
<%= form_for(@image_set, :remote => true) do |f| %> 〜なんちゃら〜 <div class="actions"> <%= f.submit %> </div> <% end %>
で、このフォームのIDが'new_image_set'になるとして、以下のようなJavaScriptを追加。
$('new_image_set').observe('ajax:before', function(){alert('before')});
prototype.jsを使っている場合。余談ですが、これ書く前にあちこち調べたところ、見つかるサンプルがことごとくjQueryの場合でびっくりしました。jQuery大人気。
これで、Ajax.Requestが実行される前にalert('before')が実行されます。
他には以下のようなイベントが発生します。