Как я могу программно добавить пульсатор 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. Тем не менее, это для добавления обратного вызова, чтобы сделать что-то еще, но все, что я хочу сделать, это получить пейджер, что, похоже, произойдет автоматически, если вы добавите какой-либо обратный вызов.
Поэтому я добавил фиктивный обратный вызов, который просто возвращается. Это вызывает у меня дрожь, но нарушает функциональность отправки формы. Как мне получить пульсатор, не нарушая форма отправки?
2 answers
Это должно быть легко сделано следующим образом:
$form['submit']['#ajax'] = [
'callback' => 'MYMODULE_submit_throbber_callback',
'progress' => [
'type' => 'throbber',
'message' => NULL,
],
];
, А затем верните $form
при обратном вызове;
Если вы хотите отобразить пульсацию на кнопке отправки без кодирования, вы можете использовать модуль Скрыть отправку.
Мой вопрос заключается в том, чтобы сделать это программно, но я перечисляю это как ответ для людей, которые не хотят программировать.