logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

3.6. Webforms —— 一个强大的表单构建器

17/10/2025, by Ivan

在本视频中,我们将学习如何使用功能强大的表单构建器 Webform。首先进入模块页面。要创建 Webform,我们需要启用 WebformWebform UI 模块。如果你希望将 Webform 作为节点页面显示,还需要启用 Webform Node 模块。

Drupal Webform

在 Drupal 6 和 7 中,Webform 是通过节点页面运行的 —— 表单附加在 Webform 内容类型上。而从 Drupal 8 开始,每个 Webform 都自带页面,不再需要单独的节点页面,同时表单也可以作为区块放置在任意页面上。

启用 Webform 模块后,我们就可以开始创建新的 Webform。

如果启用了 Webform Node 模块,创建 Webform 的链接位于 内容 → 添加内容 → Webform。在创建页面时,添加标题和描述。还可以在“Form”字段中选择一个已有的表单,或者留空以创建新表单。

/node/add/webform

Contact Us form

要创建表单本身,请进入 结构 → Webforms 菜单,然后你可以将其嵌入节点页面。
当前我们只有一个联系表单,让我们再添加一个。虽然可以使用默认表单,但为了学习 Webform 字段的工作方式,我们将创建一个新表单:

/admin/structure/webform

Drupal contact us form

现在我们可以为表单添加新元素:

文本字段 – 我们的名字(Our Name)

Drupal text field

电话字段 – 电话(Phone)

Webform phone

Webform 模块使用 Drupal 的 Fields API,因此你可以使用网站上可用于任何实体的字段 —— 无论是节点、区块、分类术语还是其他实体。

如果进入任意字段的编辑界面,你会发现 Webform 提供了大量设置。你可以设置依赖字段,即当某个字段具有特定值时显示另一个字段。例如,在联系表单中,若用户选择“企业”或“个人”,可分别显示不同的字段。

还可以使用正则表达式进行验证,也可以通过自定义模块中的 hook_form_alter() 以编程方式添加验证。

你可以为字段设置 CSS 类。例如,如果你使用 Bootstrap 布局,可以为字段包装器添加列类,使字段按列排列,例如 col-md-6 可实现两列布局。

在“Form display”部分,可以设置是否显示字段标签、在字段前后添加说明、设置占位符(placeholder),以及定义字段的最小和最大长度。

我们还需要添加一个 Email 字段以便回复发送者,以及一个 Text area 字段用于输入消息内容。

Webform 设置

你可以设置一条消息,在表单无法提交时显示。

可以覆盖提交按钮(Submit)的文本,并为表单添加布局类。

多步表单设置(Wizard settings)

在多页表单中,可以修改“下一步 / 上一步”按钮的标签。

其他设置说明

可以设置提交后的感谢信息(Thank you message)。

可以将 Webform 作为区块显示在页面左侧栏。

Webform 通知设置

你可以配置在用户提交表单后发送通知邮件给管理员或指定收件人。