14

如何手动重新启用被 Railsdisable_with功能禁用的链接(不是表单元素)?

4

7 回答 7

14

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

要逆转这种效果,只需enableElement在 jQuery 对象上使用该方法:

$.rails.enableElement($('a[data-disable-with]'));


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

$(document).on('page:change', function() {
   $.rails.enableElement($('a[data-disable-with]'));
});
于 2015-07-13T21:44:50.577 回答
8

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

$(window).unload(function() {
  $.rails.enableFormElements($($.rails.formSubmitSelector));
});
于 2014-03-13T16:29:59.097 回答
5

Rails 更新了他们的 javascript 以不再使用 jQuery。

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

var selectors = [Rails.linkDisableSelector, Rails.formEnableSelector].join(', ');
$(selectors).each(function() {
  Rails.enableElement(this);
})
于 2017-05-11T21:19:41.703 回答
2

嘿,这很简单,您只需要找到按钮并执行

$button = $('#someId')
$.rails.enableElement($button)
$button.removeAttr('disabled')
于 2017-06-01T23:54:32.927 回答
1

Based on @DGM solution I ended up with the following code:

$.rails.enableFormElements($disabled_button);

Where:

$disabled_button is the jQuery object for the button disabled by data-disable-with which could be selected like this:

$disabled_button = $('[data-disable-with]');
于 2015-04-21T21:45:39.700 回答
0

好的,我发现了这个有趣的解决方法(显然问题仅在 FF 中) set :autocomplete => 'off' 现在它可以工作了。或者其他答案之一也可能有效。

参考:https ://github.com/rails/jquery-ujs/issues/357

于 2014-09-05T13:37:15.667 回答
-1

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

于 2013-06-25T10:59:43.807 回答