form_set_error在Drupal 6上使用两种相同的形式


form_set_error on Drupal 6 using two identical forms

我正在使用Drupal 6,我想创建一个块,它显示一个也可以在子页面上找到的表单。

为此,我创建了一个drupal form API Form form(),其验证处理程序form_validate()和提交处理程序form_submit()。然后,我添加了一个表单 API 表单 widget_form(),它与 form() 基本相同 - 只是轻微的样式调整,将验证/提交处理程序设置为 form_validate() 和 form_submit(),我也更改了操作以转到显示 form() 的子页面。

这工作正常,但如果存在验证错误(使用 widget_form() 时),drupal 会标记块公式,而不是子页面上

的公式。

这似乎按设计工作,但不是我想要的必需行为。那么,有什么方法可以改变这一点吗?(我希望错误显示在form() - form上,而不是widget_form())

谢谢!

编辑:我试图在显示form()表单的页面上隐藏包含widget_form()-表单的块,没有显示任何错误。

我认为使用的方法不太正确。您需要创建的只是一个表单和一组验证和提交功能。对于块使用hook_block并创建一个块,在块视图操作中,您可以调用drupal_get_form并在块内显示表单,然后使用 CSS 或自定义模板文件为块设置主题。然后,从块配置页面中,您可以决定不在加载完整表单的 URL(菜单)上显示块。你说对了这部分。