Rails Unobtrusive JavaScript http://twitter.github.com/bootstrap/javascript.html#buttonsで Twitter Bootstrap のボタン読み込み状態を使用しています。
form 要素はdata-remote="true"
オプションを使用し、.js ファイルを返します。送信ボタンは.button("loading")
、次の JS を使用して を呼び出します。
$(document).on("click", ".btn-loading", function() {
var btn;
btn = $(this);
btn.button("loading");
});
Ajax の成功とエラーの状態を検出し、ボタンの状態をリセットする方法はありますか?
以下のようなことをしようとしましたが、この関数がトリガーされた後、.btn-loading
アクティブな要素にアクセスする方法がわかりません
$(document).on("ajax:success", function(evt, data, status, xhr) {
var btn;
btn = $(this); //how to access .btn-loading() that's active?
btn.button("reset");
btn.button("toggle");
});
ajax リクエスト後にボタンをリセットする方法について何か提案はありますか?
また、HTML5 エラーを検出してボタンの状態をリセットするにはどうすればよいですか?
更新: 2012 年 8 月 14 日
イベントをリッスンして、次の方法でボタンをトリガーできることがわかりました。
$(document).on("ajax:success", "form[data-remote]", function(evt, data, status, xhr) {
var el;
el = $(this).find('.btn-loading');
el.button("reset");
el.button("toggle");
});
このウィキを参照してください: https://github.com/rails/jquery-ujs/wiki/ajax
ただし、エラーキャッチ部分が機能していません。これで成功した人はいますか?
$("form").live("ajax:aborted:required", function(evt, elements) {
var el;
el = $(this).find('.btn-loading');
el.button("reset");
el.button("toggle");
});