Повторно ввімкніть посилання, відключені за допомогою функції disable_with

Як вручну повторно ввімкнути посилання (не елементи форми), які вимикаються за допомогою функції disable_with Rails

10

7 Відповіді

Знайдено рішення тут :

$(window).unload(function() {
  $.rails.enableFormElements($($.rails.formSubmitSelector));
});
8
додано
Так, це працює в Rails 3.2. По суті, просто передайте об'єкт або об'єкти jQuery до $ .rails.enableFormElements і він знову ввімкне. У моєму випадку я передав форму, яку я подав: $ .rails.enableFormElements ($ ('div.modal form'))
додано Автор Joshua Pinter, джерело

Виклик для повторного підключення трохи відрізняється від елементів форми. Насправді це прив'язує обробника до події кліків, що зупиняє щось інше. Мені вдалося з'ясувати, досліджуючи, як бібліотека jquery-ujs .

Щоб змінити цей ефект, просто скористайтеся методом enableElement у вашому об'єкті jQuery:

$.rails.enableElement($('a[data-disable-with]'));


With Turbolinks, it also helps to watch for the 'page:change' event instead of window.unload:

$(document).on('page:change', function() {
   $.rails.enableElement($('a[data-disable-with]'));
});
8
додано

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 is the jQuery object for the button disabled by data-disable-with which could be selected like this:

$disabled_button = $('[data-disable-with]');
1
додано

OK I found this interesting work around (apparently the problem is only in FF) set :autocomplete => 'off' and now it works. Or one of the other answer might work as well.

ref: https://github.com/rails/jquery-ujs/issues/357

0
додано

Ви можете використовувати jQuery, щоб видалити атрибут, який вимикає дані, з Rails додає до кнопки $ ('# disabledbutton'). removeAttr ('відключення даних');

0
додано
Ах, цікаво. Шукаю щось, щоб змінити його назад у початковий стан. Здається, це не робиться.
додано Автор bevanb, джерело
Як bevanb сказав. Це не змінює елемент назад у вихідний стан.
додано Автор Peter Black, джерело

Ей його досить просто, вам просто потрібно знайти кнопку і зробити

$button = $('#someId')
$.rails.enableElement($button)
$button.removeAttr('disabled')
0
додано
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram