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

Javascript 使用disable_with重新启用禁用的链接,javascript,ruby-on-rails,Javascript,Ruby On Rails,如何手动重新启用使用Rails“disable\u with功能禁用的链接(而不是表单元素)?您可以使用jQuery删除Rails添加到按钮的data disable with属性: $(“#禁用按钮”).removeAttr('data-disable-with') 我找到了一个解决方案: 好的,我发现了这项有趣的工作(显然问题只存在于FF中) set:autocomplete=>“关闭”,现在它可以工作了。或者另一个答案也可能有效 参考:基于@DGM解决方案,我最终得到了以下代码: $.ra

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

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

我找到了一个解决方案:


好的,我发现了这项有趣的工作(显然问题只存在于FF中) set:autocomplete=>“关闭”,现在它可以工作了。或者另一个答案也可能有效


参考:

基于@DGM解决方案,我最终得到了以下代码:

$.rails.enableFormElements($disabled_button);
其中:

$disabled\u button
是按钮的jQuery对象,该按钮由
数据禁用与
禁用,可如下选择:

$disabled_button = $('[data-disable-with]');

对可重入链接的调用与表单元素略有不同。它实际上将一个处理程序绑定到click事件,以阻止任何其他事件的发生。我是在一个星期前弄明白的

要扭转这种效果,只需在jQuery对象上使用
enablelement
方法:

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

使用TurboLink,它还可以帮助监视
“页面:更改”
事件,而不是
窗口。卸载

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

Rails已经更新了javascript,不再使用jQuery

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


嘿,这很简单,你只需要找到按钮,然后

$button = $('#someId')
$.rails.enableElement($button)
$button.removeAttr('disabled')

啊,很有趣。正在寻找可以将其更改回原始状态的内容。好像不行,就像贝文布说的。这不会将元素更改回其原始状态。本质上,只需将一个或多个jQuery对象传递给
$.rails.enableFormElements
,它就会重新启用它。在我的例子中,我传递了我正在提交的表单:
$.rails.enableFormElements($('div.modal form'))
这不会将按钮的文本(即
)更改回提交前的状态。
var selectors = [Rails.linkDisableSelector, Rails.formEnableSelector].join(', ');
$(selectors).each(function() {
  Rails.enableElement(this);
})
$button = $('#someId')
$.rails.enableElement($button)
$button.removeAttr('disabled')