如何手动重新启用使用Rails'disable_with
功能禁用的链接(而不是表单元素)?
答案 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 => '关闭'现在它的工作原理。或者其中一个答案可能也有效。
答案 6 :(得分:0)
嘿,它非常简单,你只需找到按钮并执行
$button = $('#someId')
$.rails.enableElement($button)
$button.removeAttr('disabled')