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

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

Ответы на вопрос(7)

который Rails добавляет к кнопке: $ ('#disabledbutton») .RemoveAttr (»данных Disable-с»);

 Peter Black28 мая 2015 г., 20:35
Как сказал Беванб. Это не меняет элемент обратно в исходное состояние.
 bevanb25 июн. 2013 г., 13:16
Ах, интересно. Ищете что-то, чтобы вернуть его в исходное состояние. Это неКажется, я делаю это.

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

$button = $('#someId')
$.rails.enableElement($button)
$button.removeAttr('disabled')
 Joshua Pinter04 июн. 2019 г., 00:19
Это неизменить текст (т.е.value) кнопки назад к тому, что было до подачи.

$.rails.enableFormElements($disabled_button);

Куда:

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

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

самом деле он связывает обработчик с событием 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]'));
});

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

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

Решение, которое я нашелВот:

$(window).unload(function() {
  $.rails.enableFormElements($($.rails.formSubmitSelector));
});
 Joshua Pinter13 мая 2018 г., 03:43
Да, это работает в Rails 3.2. По сути, просто передайте объект или объекты jQuery$.rails.enableFormElements и он снова включит его. В моем случае я передал форму, которую я отправлял:$.rails.enableFormElements( $( 'div.modal form' ) )

autocomplete => 'выключено» и теперь это работает. Или другой ответ может также сработать.

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

Ваш ответ на вопрос