Как я могу программно добавить пульсатор AJAX по умолчанию в отправленную форму?


Я пытаюсь добавить функцию AJAX throbber в ядро к кнопке отправки формы, в частности, на страницу нового сообщения модуля личных сообщений.

Вот мой код:

function MYMODULE_form_privatemsg_new_alter(&$form, &$form_state, $form_id) {
  $form['actions']['submit']['#ajax'] = array(
'callback' => 'MYMODULE_submit_throbber_callback',
  );
}

function MYMODULE_submit_throbber_callback($form, $form_state) {
  return;
}

Вот что я сделал до сих пор.

Сначала я посмотрел на модуль Пульсатор страниц для идей, но он делает все в hook_init(), и он не использует пульсатор, включенный в ядро. Если возможно, я хочу избежать репликации того, что уже находится в ядре для одного форма.

Затем я заглянул в модуль Примеров, в частности в пример AJAX, который включает пример отправки AJAX. Тем не менее, это для добавления обратного вызова, чтобы сделать что-то еще, но все, что я хочу сделать, это получить пейджер, что, похоже, произойдет автоматически, если вы добавите какой-либо обратный вызов.

Поэтому я добавил фиктивный обратный вызов, который просто возвращается. Это вызывает у меня дрожь, но нарушает функциональность отправки формы. Как мне получить пульсатор, не нарушая форма отправки?

Author: Patrick Kenny, 2016-04-23

2 answers

Это должно быть легко сделано следующим образом:

$form['submit']['#ajax'] = [
  'callback' => 'MYMODULE_submit_throbber_callback',
  'progress' => [
    'type' => 'throbber',
    'message' => NULL,
  ],
];

, А затем верните $form при обратном вызове;

 1
Author: , 2019-07-10 10:37:47

Если вы хотите отобразить пульсацию на кнопке отправки без кодирования, вы можете использовать модуль Скрыть отправку.

Мой вопрос заключается в том, чтобы сделать это программно, но я перечисляю это как ответ для людей, которые не хотят программировать.

 0
Author: Patrick Kenny, 2016-04-27 13:58:07