Пример создания индикатора прогресса с именем toggleClass
, который добавляет/удаляет класс у элемента:
(function ($, Drupal) {
/**
* Create custom progress type "toggleClass".
* @see Drupal.Ajax.prototype.beforeSend()
*/
Drupal.Ajax.prototype.setProgressIndicatorToggleclass = function () {
var $progressTarget = this.progress.target ? $(this.progress.target) : $(this.element);
var progressClass = this.progress.class ? this.progress.class : 'ajax-progress-animation';
// Add class
$progressTarget.addClass(progressClass);
// Remove class
this.progress.object = {
stopMonitoring: function () {
$progressTarget.removeClass(progressClass);
}
};
};
})(jQuery, Drupal);
Название функции setProgressIndicatorToggleclass
строится по принципу — setProgressIndicator
+ название индикатора с большой буквы и маленькими все остальные буквы.
Использовать так:
$form['submit'] = [
...
'#ajax' => [
...
'progress' => [
'type' => 'toggleClass',
'target' => '.example-form .form-email',
'class' => 'ajax-progress-animation',
],
],
];
Написанное актуально для
Drupal 8
Похожие записи
- Как выполнять свой js-код до или после любых AJAX запросов (изменение работы AJAX API)
- Отключить автоматический аплоад файлов у определённого поля
- Открыть страницу или форму в диалоговом окне
- Показать второй шаг многошаговой формы в модальном окне
- Навесить на элемент managed_file свой ajax callback (Как обновить всю форму при загрузки файла в managed_file)
Добавить комментарий