使用disable_with重新启用禁用的链接

bev*_*anb 10 javascript ruby-on-rails

如何手动重新启用使用Rails disable_with功能禁用的链接(而不是表单元素)?

小智 11

对重新启用链接的调用与表单元素略有不同.它实际上将处理程序绑定到click事件,以阻止其他任何事情发生.我能够通过调查jquery-ujs库来解决这个问题.

要反转此效果,只需enableElement在jQuery对象上使用该方法:

$.rails.enableElement($('a[data-disable-with]'));
Run Code Online (Sandbox Code Playgroud)


使用Turbolinks,它还有助于观察'page:change'事件,而不是window.unload:

$(document).on('page:change', function() {
   $.rails.enableElement($('a[data-disable-with]'));
});
Run Code Online (Sandbox Code Playgroud)


DGM*_*DGM 8

我在这里找到的解决方案:

$(window).unload(function() {
  $.rails.enableFormElements($($.rails.formSubmitSelector));
});
Run Code Online (Sandbox Code Playgroud)


gab*_*ess 5

Rails已将其JavaScript更新为不再使用jQuery。

现在,您可以使用以下命令重新启用元素(假设您仍在使用jQuery):

var selectors = [Rails.linkDisableSelector, Rails.formEnableSelector].join(', ');
$(selectors).each(function() {
  Rails.enableElement(this);
})
Run Code Online (Sandbox Code Playgroud)


小智 -1

您可以使用 jQuery 删除 Rails 添加到按钮的 data-disable-with 属性: $('#disabledbutton').removeAttr('data-disable-with');