Как я могу вручную повторно активировать ссылки (а не элементы формы), которые отключены с помощью функции Rails disable_with
?
Восстановить ссылки отключены с помощью disable_with
Ответ 1
Призыв к повторно соединяемым ссылкам несколько отличается от элементов формы. Он фактически привязывает обработчик к событию click, которое останавливает что-либо еще. Я смог понять это с помощью изучения того, как библиотека 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]'));
});
Ответ 2
Решение, которое я нашел здесь:
$(window).unload(function() {
$.rails.enableFormElements($($.rails.formSubmitSelector));
});
Ответ 3
Rails обновил свой javascript, чтобы больше не использовать jQuery.
Теперь вы можете повторно включить элементы со следующим (если вы все еще используете jQuery):
var selectors = [Rails.linkDisableSelector, Rails.formEnableSelector].join(', ');
$(selectors).each(function() {
Rails.enableElement(this);
})
Ответ 4
Основываясь на решении @DGM, я получил следующий код:
$.rails.enableFormElements($disabled_button);
Где:
$disabled_button
- это объект jQuery для кнопки, отключенной кнопкой data-disable-with
, которая может быть выбрана следующим образом:
$disabled_button = $('[data-disable-with]');
Ответ 5
Вы можете использовать jQuery для удаления атрибута disable-with, который Rails добавляет к кнопке: $ ( '# Disabledbutton') removeAttr ( 'данных Disable-с');.
Ответ 6
OK Я нашел эту интересную работу (видимо, проблема только в FF) set: autocomplete = > 'off', и теперь он работает. Или один из других ответов может работать.
Ответ 7
Эй, это довольно просто, вам просто нужно найти кнопку и сделать
$button = $('#someId')
$.rails.enableElement($button)
$button.removeAttr('disabled')