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

时间:2013-06-25 10:41:19

标签: javascript ruby-on-rails

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

7 个答案:

答案 0 :(得分:9)

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

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

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


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

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

答案 1 :(得分:8)

我找到的解决方案here

$(window).unload(function() {
  $.rails.enableFormElements($($.rails.formSubmitSelector));
});

答案 2 :(得分:5)

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

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

int func(struct Dog A, struct Dog B);

答案 3 :(得分:1)

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

$.rails.enableFormElements($disabled_button);

其中:

$disabled_button是由data-disable-with禁用的按钮的jQuery对象,可以像这样选择:

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

好的我找到了这个有趣的工作(显然这个问题只在FF中) set:autocomplete => '关闭'现在它的工作原理。或者其中一个答案可能也有效。

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

答案 6 :(得分:0)

嘿,它非常简单,你只需找到按钮并执行

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