如何手动重新启用被 Railsdisable_with
功能禁用的链接(不是表单元素)?
7 回答
重新启用链接的调用与表单元素略有不同。它实际上将一个处理程序绑定到阻止其他任何事情发生的单击事件。我能够通过调查 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]'));
});
我在这里找到的解决方案:
$(window).unload(function() {
$.rails.enableFormElements($($.rails.formSubmitSelector));
});
Rails 更新了他们的 javascript 以不再使用 jQuery。
您现在可以使用以下命令重新启用元素(假设您仍在使用 jQuery):
var selectors = [Rails.linkDisableSelector, Rails.formEnableSelector].join(', ');
$(selectors).each(function() {
Rails.enableElement(this);
})
嘿,这很简单,您只需要找到按钮并执行
$button = $('#someId')
$.rails.enableElement($button)
$button.removeAttr('disabled')
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]');
好的,我发现了这个有趣的解决方法(显然问题仅在 FF 中) set :autocomplete => 'off' 现在它可以工作了。或者其他答案之一也可能有效。
您可以使用 jQuery 删除 Rails 添加到按钮的 data-disable-with 属性: $('#disabledbutton').removeAttr('data-disable-with');