Повторно включить ссылки отключены с помощью disable_with

Как я могу вручную включить ссылки (не элементы формы), которые отключаются с помощью Rails' disable_with особенность?

7 ответов

Призыв к включаемым ссылкам немного отличается от элементов формы. Это фактически связывает обработчик с событием 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]'));
});

Решение, которое я нашел здесь:

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

Rails обновил свой JavaScript, чтобы больше не использовать jQuery.

Теперь вы можете снова включить элементы с помощью следующего (при условии, что вы все еще используете jQuery):

var selectors = [Rails.linkDisableSelector, Rails.formEnableSelector].join(', ');
$(selectors).each(function() {
  Rails.enableElement(this);
})

Эй, это довольно просто, вам просто нужно найти кнопку и сделать

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

На основе решения @DGM я получил следующий код:

$.rails.enableFormElements($disabled_button);

Куда:

$disabled_button является объектом jQuery для кнопки, отключенной data-disable-with который может быть выбран следующим образом:

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

ОК, я нашел эту интересную работу (видимо, проблема только в FF):autocomplete => 'off', и теперь это работает. Или другой ответ тоже может сработать.

ссылка: https://github.com/rails/jquery-ujs/issues/357

Вы можете использовать jQuery для удаления атрибута data-disable-with, который Rails добавляет к кнопке: $('#disabledbutton'). RemoveAttr('data-disable-with');

Другие вопросы по тегам