我正在使用带有 Rails Unobtrusive JavaScript http://twitter.github.com/bootstrap/javascript.html#buttons的 Twitter Bootstrap 的按钮加载状态
form 元素使用data-remote="true"
option 并返回一个 .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");
});