Перед сериализацией данных формы:
(function ($, Drupal) {
var originalAjaxBeforeSerialize = Drupal.Ajax.prototype.beforeSerialize;
Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
... YOUR CODE ...
return originalAjaxBeforeSerialize.apply(this, arguments);
};
})(jQuery, Drupal);
Перед отправкой ajax запроса:
(function ($, Drupal) {
var originalAjaxBeforeSend = Drupal.Ajax.prototype.beforeSend;
Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
... YOUR CODE ...
return originalAjaxBeforeSend.apply(this, arguments);
};
})(jQuery, Drupal);
После выполнения ajax запроса, но до выполнения ajax-команд:
(function ($, Drupal) {
var originalAjaxSuccess = Drupal.Ajax.prototype.success;
Drupal.Ajax.prototype.success = function (response, status) {
... YOUR CODE ...
return originalAjaxSuccess.apply(this, arguments);
};
})(jQuery, Drupal);
После выполнения ajax-команд:
(function ($, Drupal) {
var originalAjaxSuccess = Drupal.Ajax.prototype.success;
Drupal.Ajax.prototype.success = function (response, status) {
var originalAjaxSuccessPromise = originalAjaxSuccess.apply(this, arguments);
return originalAjaxSuccessPromise.then(function () {
... YOUR CODE ...
});
};
})(jQuery, Drupal);
В случае ошибки выполнения ajax запроса:
(function ($, Drupal) {
var originalAjaxError = Drupal.Ajax.prototype.error;
Drupal.Ajax.prototype.error = function (response, status) {
... YOUR CODE ...
return originalAjaxError.apply(this, arguments);
};
})(jQuery, Drupal);
Таким же способом можно переопределять и сами ajax команды:
(function ($, Drupal) {
var originalInsertCommand = Drupal.AjaxCommands.prototype.insert;
Drupal.AjaxCommands.prototype.insert = function (ajax, response, status) {
... YOUR CODE ...
return originalInsertCommand.apply(this, arguments);
};
})(jQuery, Drupal);
Написанное актуально для
Drupal 8+
Похожие записи
- Создать свой ajax индикатор прогресса
- Отключить автоматический аплоад файлов у определённого поля
- Открыть страницу или форму в диалоговом окне
- Показать второй шаг многошаговой формы в модальном окне
- Навесить на элемент managed_file свой ajax callback (Как обновить всю форму при загрузки файла в managed_file)
Добавить комментарий