Повторно включить ссылки отключены с помощью 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', и теперь это работает. Или другой ответ тоже может сработать.
Вы можете использовать jQuery для удаления атрибута data-disable-with, который Rails добавляет к кнопке: $('#disabledbutton'). RemoveAttr('data-disable-with');