Отправка формы Drupal, form after_build

В чем разница между $ form ['# submit'] и $ form ['# after_build'] ?

7
задан Berming 26 August 2010 в 18:35
поделиться

1 ответ

В API-документах это довольно хорошо изложено. $form['#submit'] добавит массив обработчиков отправки в вашу форму: т.е. когда кто-то нажмет кнопку "Отправить", будет вызвана функция в массиве. Они будут называться после отправки.

Обычно вы хотите использовать это свойство при вызове hook_form_alter() для добавления еще одной функции отправки в форму, которую вы не создавали сами, как если бы вы сами создавали форму в коде. , вы также создаете обработчик отправки по умолчанию. Здесь документы FAPI на #submit.

$form['#after_build'] аналогичен тому, что для вызова требуется массив функций, но они будут вызываться после построения формы для отображения. Это можно использовать, если у вас есть значение по умолчанию или существующее в элементе формы, и вы хотите проверить статус чего-либо с этим значением перед отправкой . См. документы FAPI для хорошего примера проверки состояния чего-либо перед отправкой, после того как форма построена для отображения.

Таким образом, функции $form['#submit'] будут вызываться при отправке, а функции $form['#after_build'] будут вызываться при отображении форма.

14
ответ дан 6 December 2019 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: