使用disable_with重新启用禁用的链接
如何手动重新启用使用disable_with
function禁用的链接(而不是表单元素)?
我在这里找到的解决方案:
$(window).unload(function() { $.rails.enableFormElements($($.rails.formSubmitSelector)); });
对重新启用链接的调用与表单元素略有不同。 它实际上将处理程序绑定到click事件,以阻止其他任何事情发生。 我能够通过调查jquery-ujs库来解决这个问题。
要反转此效果,只需在jQuery对象上使用enableElement
方法:
$.rails.enableElement($('a[data-disable-with]'));
使用Turbolinks,它还有助于监视'page:change'
事件而不是window.unload
:
$(document).on('page:change', function() { $.rails.enableElement($('a[data-disable-with]')); });
Rails更新了他们的javascript,不再使用jQuery。
您现在可以使用以下内容重新启用元素(假设您仍在使用jQuery):
var selectors = [Rails.linkDisableSelector, Rails.formEnableSelector].join(', '); $(selectors).each(function() { Rails.enableElement(this); })
基于@DGM解决方案,我最终得到以下代码:
$.rails.enableFormElements($disabled_button);
哪里:
$disabled_button
是data-disable-with
的按钮的jQuery对象,可以像这样选择:
$disabled_button = $('[data-disable-with]');
您可以使用jQuery删除Rails添加到按钮的data-disable-with属性:$(’#disablebutton’)。removeAttr(’data-disable-with’);
好的我发现这个有趣的工作(显然问题只在FF中)设置:autocomplete =>’off’,现在它可以工作了。 或者其中一个答案可能也有效。
参考: https : //github.com/rails/jquery-ujs/issues/357
嘿,它很简单你只需要找到按钮并做
$button = $('#someId') $.rails.enableElement($button) $button.removeAttr('disabled')