【发布时间】:2011-04-04 10:43:50
【问题描述】:
$form['#submit'] 和 $form['#after_build'] 有什么区别?
【问题讨论】:
标签: php drupal content-management-system drupal-modules
$form['#submit'] 和 $form['#after_build'] 有什么区别?
【问题讨论】:
标签: php drupal content-management-system drupal-modules
api 文档很好地说明了这一点。 $form['#submit'] 将向您的表单添加一组提交处理程序:即当有人单击“提交”按钮时,将调用数组中的函数。这些将在提交后调用。
当您调用hook_form_alter() 时,您通常会希望使用此属性向您没有自己构建的表单添加另一个提交函数,就像您在代码中自己创建表单一样,您也创建了默认提交处理程序。
Here 是 #submit 上的 FAPI 文档。
$form['#after_build'] 的相似之处在于它需要调用一组函数,但它们将在窗体构建后被调用以供显示。如果您在表单元素中有默认值或现有值,并且希望在提交之前检查具有该值的内容的状态,则可以使用此选项。请参阅 FAPI 文档,了解在提交之前检查某些内容的状态的一个很好的示例,在构建表单以显示之后。
所以总而言之,$form['#submit'] 函数将在提交时调用,$form['#after_build'] 函数将在表单显示时调用。
【讨论】: