複数のフォームがあるページがあります。これらのフォームはデータ属性data-remote="trueを 使用しているため、Rails jquery-ui-rails.js はイベントを自動的に追加してこれらのフォームを JavaScript 経由で送信します。
ユーザーがこれらのフォームのいずれかを送信するときに、クラスを追加して、必要に応じてスタイルを設定できるようにしたいと考えています。Rails は自動的に ajax ハンドラーを追加してフォームを送信するため、ハンドラーが追加された時点でこのクラスを追加することはできません。このためのコードを自分で手動で追加する必要があります (と思います)。
次のコードは私の最初の試みでした。これは問題なく接続されますが、ajaxStart はグローバル イベントであるため、ページ上のすべてのフォームに対して同時にトリガーされます。
$('form').ajaxStart(function(e) {
console.log("element is " + ($(e).attr('id')));
return $(e).addClass('submitting');
})
http://docs.jquery.com/Ajax_Eventsによると、これはローカル イベントであり、関連する唯一のイベントのようです。
$('form').beforeSend(function(e) {
console.log("element is " + ($(e).attr('id')));
return $(e).addClass('submitting');
})
ただし、これによりエラーが発生します。
Uncaught TypeError: Object [object Object] has no method 'beforeSend'
このイベントを自分のページのすべてのフォームにアタッチして、ajax 送信ごとに 1 回、送信中の現在のフォームに対してのみ発生させるにはどうすればよいですか?